[GH-ISSUE #292] [Feature]: AMS drying support #180

Closed
opened 2026-05-06 12:26:42 +02:00 by BreizhHardware · 34 comments

Originally created by @maziggy on GitHub (Feb 7, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/292

Originally assigned to: @maziggy on GitHub.

Problem or Use Case

Where in the code should I take a look to be able to send the command to remotely trigger the drying?
My workshop is remote, and all is monitored, but having the option to remotely start drying when not printing, and also not rotating the spools (i.e. not unloading) would be a plus.
This could be also possible to queue as drying prevents printing and vice versa.
The test I would like to do is based on this conversation: https://github.com/greghesp/ha-bambulab/issues/1448
GitHub

Good idea! And also for print farms. You can schedule a drying phase before start printing. Nice. Can you please open a feature request so that we can track?

Add a field that shows last drying for spool.

Proposed Solution

https://github.com/greghesp/ha-bambulab/issues/1448

Alternatives Considered

No response

Feature Category

Other

Priority

Would improve my workflow

Mockups or Examples

No response

Contribution

  • I would be willing to help implement this feature

Checklist

  • I have searched existing issues to ensure this feature hasn't already been requested
Originally created by @maziggy on GitHub (Feb 7, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/292 Originally assigned to: @maziggy on GitHub. ### Problem or Use Case Where in the code should I take a look to be able to send the command to remotely trigger the drying? My workshop is remote, and all is monitored, but having the option to remotely start drying when not printing, and also not rotating the spools (i.e. not unloading) would be a plus. This could be also possible to queue as drying prevents printing and vice versa. The test I would like to do is based on this conversation: https://github.com/greghesp/ha-bambulab/issues/1448 GitHub Good idea! And also for print farms. You can schedule a drying phase before start printing. Nice. Can you please open a feature request so that we can track? **Add a field that shows last drying for spool.** ### Proposed Solution https://github.com/greghesp/ha-bambulab/issues/1448 ### Alternatives Considered _No response_ ### Feature Category Other ### Priority Would improve my workflow ### Mockups or Examples _No response_ ### Contribution - [ ] I would be willing to help implement this feature ### Checklist - [x] I have searched existing issues to ensure this feature hasn't already been requested
BreizhHardware 2026-05-06 12:26:42 +02:00
Author
Owner

@maziggy commented on GitHub (Feb 8, 2026):

⚠ Minimum supported firmware version: 01.02.30.00 Beta(H2D). Support for other models is under development.

<!-- gh-comment-id:3866472614 --> @maziggy commented on GitHub (Feb 8, 2026): ⚠ Minimum supported firmware version: 01.02.30.00 Beta(H2D). Support for other models is under development.
Author
Owner

@cadtoolbox commented on GitHub (Mar 4, 2026):

The filament can't be loaded for the AMS to rotate the spool during drying, so I think at minimum if Bambuddy had the option to restart drying after each print for the specific material that is loaded... that would be a huge new feature!

<!-- gh-comment-id:3999335578 --> @cadtoolbox commented on GitHub (Mar 4, 2026): The filament can't be loaded for the AMS to rotate the spool during drying, so I think at minimum if Bambuddy had the option to restart drying after each print for the specific material that is loaded... that would be a huge new feature!
Author
Owner

@maziggy commented on GitHub (Mar 5, 2026):

Waitng for new firmware version.

<!-- gh-comment-id:4002761360 --> @maziggy commented on GitHub (Mar 5, 2026): Waitng for new firmware version.
Author
Owner

@maziggy commented on GitHub (Mar 12, 2026):

Just upgraded my H2D and looking into drying support now.

<!-- gh-comment-id:4046573645 --> @maziggy commented on GitHub (Mar 12, 2026): Just upgraded my H2D and looking into drying support now.
Author
Owner

@cadtoolbox commented on GitHub (Mar 12, 2026):

@maziggy I had some discussions about how this would work. Ideally, idle printer time should allow bambuddy to enable AMS drying. I think it needs to be humidity based though so it's not running excessively. Once the set-point is met, it should disable drying. We only using AMS drying with loaded filament.

<!-- gh-comment-id:4046601125 --> @cadtoolbox commented on GitHub (Mar 12, 2026): @maziggy I had some discussions about how this would work. Ideally, idle printer time should allow bambuddy to enable AMS drying. I think it needs to be humidity based though so it's not running excessively. Once the set-point is met, it should disable drying. We only using AMS drying with loaded filament.
Author
Owner

@maziggy commented on GitHub (Mar 12, 2026):

Ahh I see, so it should be configured globally for the queue. I thought about a "drying item", that can be added to the queue between prints.

<!-- gh-comment-id:4047000984 --> @maziggy commented on GitHub (Mar 12, 2026): Ahh I see, so it should be configured globally for the queue. I thought about a "drying item", that can be added to the queue between prints.
Author
Owner

@cadtoolbox commented on GitHub (Mar 12, 2026):

Ideally, it should be set per AMS as an option to control (depends on what filament is loaded) and by humidity.

<!-- gh-comment-id:4047063875 --> @cadtoolbox commented on GitHub (Mar 12, 2026): Ideally, it should be set per AMS as an option to control (depends on what filament is loaded) and by humidity.
Author
Owner

@maziggy commented on GitHub (Mar 12, 2026):

Yes, but what is prefered? The per AMS global queue setting, or an AMS dry item that can be added to the queue?

<!-- gh-comment-id:4047099813 --> @maziggy commented on GitHub (Mar 12, 2026): Yes, but what is prefered? The per AMS global queue setting, or an AMS dry item that can be added to the queue?
Author
Owner

@maziggy commented on GitHub (Mar 12, 2026):

Image Image
<!-- gh-comment-id:4047711761 --> @maziggy commented on GitHub (Mar 12, 2026): <img width="285" height="317" alt="Image" src="https://github.com/user-attachments/assets/35448e84-7b29-4be7-823c-be896eb0a85e" /> <img width="294" height="158" alt="Image" src="https://github.com/user-attachments/assets/66dc54e1-0245-4c1d-a7e9-735f902bf981" />
Author
Owner

@cadtoolbox commented on GitHub (Mar 12, 2026):

I think "Start Drying" should be more automatic that it turns it on and off on a global basis. Adding a drying item to the queue seems odd to me.

<!-- gh-comment-id:4048002658 --> @cadtoolbox commented on GitHub (Mar 12, 2026): I think "Start Drying" should be more automatic that it turns it on and off on a global basis. Adding a drying item to the queue seems odd to me.
Author
Owner

@maziggy commented on GitHub (Mar 13, 2026):

I need some more infos please.

Here's the current design idea — we'd love your input on one key question.

How it works:

  • Configure drying presets per filament type in Settings → Filament (temp + duration for AMS 2 Pro / AMS-HT)
  • Enable/disable auto-drying via a toggle on the Queue page
  • When enabled, Bambuddy checks AMS humidity after each print completes. If humidity is above your configured threshold, it starts drying automatically
  • For mixed filament types in one AMS unit (e.g., PLA + PETG), the most conservative settings are used (lowest temp, longest duration) to protect sensitive materials
  • Each AMS unit is evaluated independently based on its own humidity sensor

The question: should drying block the queue or not?

Option A — Drying blocks the queue: After a print finishes, drying starts and the next print waits until drying is complete. Guarantees dry filament for every print, but a 12h drying cycle would delay the entire queue.

Option B — Print takes priority: Drying starts when the printer goes idle, but if the next queued print is ready, drying is stopped (or skipped) and the print starts immediately. Drying only happens in natural gaps (e.g., nothing else in queue, or long delay before next scheduled print). Filament gets dried when possible, but prints are never delayed.

Which do you prefer? Or would you want this to be a user-configurable option (e.g., a "wait for drying" checkbox)?

<!-- gh-comment-id:4054974931 --> @maziggy commented on GitHub (Mar 13, 2026): I need some more infos please. Here's the current design idea — we'd love your input on one key question. How it works: - Configure drying presets per filament type in Settings → Filament (temp + duration for AMS 2 Pro / AMS-HT) - Enable/disable auto-drying via a toggle on the Queue page - When enabled, Bambuddy checks AMS humidity after each print completes. If humidity is above your configured threshold, it starts drying automatically - For mixed filament types in one AMS unit (e.g., PLA + PETG), the most conservative settings are used (lowest temp, longest duration) to protect sensitive materials - Each AMS unit is evaluated independently based on its own humidity sensor The question: should drying block the queue or not? Option A — Drying blocks the queue: After a print finishes, drying starts and the next print waits until drying is complete. Guarantees dry filament for every print, but a 12h drying cycle would delay the entire queue. Option B — Print takes priority: Drying starts when the printer goes idle, but if the next queued print is ready, drying is stopped (or skipped) and the print starts immediately. Drying only happens in natural gaps (e.g., nothing else in queue, or long delay before next scheduled print). Filament gets dried when possible, but prints are never delayed. Which do you prefer? Or would you want this to be a user-configurable option (e.g., a "wait for drying" checkbox)?
Author
Owner

@cadtoolbox commented on GitHub (Mar 13, 2026):

My opinion:

Option B: Printing takes priority normally, but we may want to consider a toggle for one-time use on a specific AMS to "delay prints until dry". This would be used for specific use-cases where drying is required and not as a preventative measure.

We should also have a check if the AMS aux power is connected. This changes the behavior of how many AMS's can dry at once if just using the printer power. We should probably have drying disabled all-together for AMS's without Aux power.

<!-- gh-comment-id:4056205244 --> @cadtoolbox commented on GitHub (Mar 13, 2026): My opinion: Option B: Printing takes priority normally, but we may want to consider a toggle for one-time use on a specific AMS to "delay prints until dry". This would be used for specific use-cases where drying is required and not as a preventative measure. We should also have a check if the AMS aux power is connected. This changes the behavior of how many AMS's can dry at once if just using the printer power. We should probably have drying disabled all-together for AMS's without Aux power.
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

07XX_9200_0002_0003 │ AMS heater 1 fan can't start — power adapter not connected
07XX_9300_0002_0003 │ AMS heater 2 fan can't start — power adapter not connected
07XX_9800_0002_0001 │ Power adapter voltage too low
07XX_9800_0002_0002 │ Power adapter voltage too high
18XX_2500_0002_0001 │ AMS-HT uses printer power for drying — connect adapter
18XX_92/93... │ Same fan errors for AMS-HT
18XX_98... │ Same voltage errors for AMS-HT

<!-- gh-comment-id:4060413265 --> @maziggy commented on GitHub (Mar 14, 2026): 07XX_9200_0002_0003 │ AMS heater 1 fan can't start — power adapter not connected 07XX_9300_0002_0003 │ AMS heater 2 fan can't start — power adapter not connected 07XX_9800_0002_0001 │ Power adapter voltage too low 07XX_9800_0002_0002 │ Power adapter voltage too high 18XX_2500_0002_0001 │ AMS-HT uses printer power for drying — connect adapter 18XX_92/93... │ Same fan errors for AMS-HT 18XX_98... │ Same voltage errors for AMS-HT
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

Image Image
<!-- gh-comment-id:4060505898 --> @maziggy commented on GitHub (Mar 14, 2026): <img width="611" height="930" alt="Image" src="https://github.com/user-attachments/assets/97b2c11d-aa7e-4e77-a644-a8f6f91b6fc2" /> <img width="614" height="1211" alt="Image" src="https://github.com/user-attachments/assets/439fa551-9dcc-46ea-a611-ef6a8f11df41" />
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

@cadtoolbox Are you willing to give it a try? We also should check if the AMS PSU warning will trigger.

Please use dev branch.

Docs:
https://wiki.bambuddy.cool/features/ams/?h=drying#starting-a-drying-session
https://wiki.bambuddy.cool/features/ams/?h=dry#remote-ams-drying

<!-- gh-comment-id:4060529631 --> @maziggy commented on GitHub (Mar 14, 2026): @cadtoolbox Are you willing to give it a try? We also should check if the AMS PSU warning will trigger. Please use dev branch. Docs: https://wiki.bambuddy.cool/features/ams/?h=drying#starting-a-drying-session https://wiki.bambuddy.cool/features/ams/?h=dry#remote-ams-drying
Author
Owner

@cadtoolbox commented on GitHub (Mar 14, 2026):

@maziggy I'm not sure about this:
"The scheduler checks idle printers that have scheduled queue items"

Ideally, I think it should auto-dry regardless of if anything is scheduled to print on the printer or not. When you are ready to print, the filament should be ready to go without having to wait. Can this be a toggle to auto-dry only based on humidity and not the queue?

<!-- gh-comment-id:4060568607 --> @cadtoolbox commented on GitHub (Mar 14, 2026): @maziggy I'm not sure about this: "The scheduler checks idle printers that have scheduled queue items" Ideally, I think it should auto-dry regardless of if anything is scheduled to print on the printer or not. When you are ready to print, the filament should be ready to go without having to wait. Can this be a toggle to auto-dry only based on humidity and not the queue?
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

Sure....

<!-- gh-comment-id:4060571176 --> @maziggy commented on GitHub (Mar 14, 2026): Sure....
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

Voilla.

<!-- gh-comment-id:4060605729 --> @maziggy commented on GitHub (Mar 14, 2026): Voilla.
Author
Owner

@cadtoolbox commented on GitHub (Mar 14, 2026):

@maziggy This works beautifully!

I'll need to test it more throughout next week, but it seems to be fairly straightforward.

<!-- gh-comment-id:4061140775 --> @cadtoolbox commented on GitHub (Mar 14, 2026): @maziggy This works beautifully! I'll need to test it more throughout next week, but it seems to be fairly straightforward.
Author
Owner

@cadtoolbox commented on GitHub (Mar 16, 2026):

@maziggy Some of the HT's do not seem to start drying when manually turned on from the printer's screen.

bambuddy-support-20260316-075735.zip

<!-- gh-comment-id:4067146756 --> @cadtoolbox commented on GitHub (Mar 16, 2026): @maziggy Some of the HT's do not seem to start drying when manually turned on from the printer's screen. [bambuddy-support-20260316-075735.zip](https://github.com/user-attachments/files/26022633/bambuddy-support-20260316-075735.zip)
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

Some of the HT's do not seem to start drying when manually turned on from the printer's screen.

Then it's a firmware bug?!

<!-- gh-comment-id:4067372869 --> @maziggy commented on GitHub (Mar 16, 2026): >Some of the HT's do not seem to start drying when manually turned on from the printer's screen. Then it's a firmware bug?!
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

Or do you mean Bambuddy's printer card?

<!-- gh-comment-id:4067390060 --> @maziggy commented on GitHub (Mar 16, 2026): Or do you mean Bambuddy's printer card?
Author
Owner

@cadtoolbox commented on GitHub (Mar 16, 2026):

@maziggy Sorry, yes. I meant Bambuddy's printers screen.

<!-- gh-comment-id:4067392798 --> @cadtoolbox commented on GitHub (Mar 16, 2026): @maziggy Sorry, yes. I meant Bambuddy's printers screen.
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

The only thing I see in the logs is:

2026-03-16 07:57:10,344 INFO [backend.app.services.bambu_mqtt] SERIAL Sent drying command: ams_id=131, temp=65, duration=1, mode=1
2026-03-16 07:57:10,356 DEBUG [backend.app.services.bambu_mqtt] SERIAL Ignoring spurious disconnect (last message 0.8s ago)

<!-- gh-comment-id:4067399130 --> @maziggy commented on GitHub (Mar 16, 2026): The only thing I see in the logs is: >2026-03-16 07:57:10,344 INFO [backend.app.services.bambu_mqtt] [[SERIAL]] Sent drying command: ams_id=131, temp=65, duration=1, mode=1 >2026-03-16 07:57:10,356 DEBUG [backend.app.services.bambu_mqtt] [[SERIAL]] Ignoring spurious disconnect (last message 0.8s ago)
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

Should look like this

2026-03-16 13:47:59,346 INFO [backend.app.services.bambu_mqtt] SERIAL Sent drying command: ams_id=128, temp=45, duration=12, mode=1
2026-03-16 13:47:59,727 DEBUG [backend.app.services.bambu_mqtt] SERIAL Received command response: ams_filament_drying

<!-- gh-comment-id:4067407199 --> @maziggy commented on GitHub (Mar 16, 2026): Should look like this >2026-03-16 13:47:59,346 INFO [backend.app.services.bambu_mqtt] [[SERIAL]] Sent drying command: ams_id=128, temp=45, duration=12, mode=1 >2026-03-16 13:47:59,727 DEBUG [backend.app.services.bambu_mqtt] [[SERIAL]] Received command response: ams_filament_drying
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

Ah wait....you're using 4x AMS-HT.

ams_id=131

Let me check a few things.....

<!-- gh-comment-id:4067443278 --> @maziggy commented on GitHub (Mar 16, 2026): Ah wait....you're using 4x AMS-HT. >ams_id=131 Let me check a few things.....
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

No, the code looks correct.

Since we saw a spurious MQTT disconnect at the same time you started drying, please try again.

Just checked with my H2D with HT-AMS and it works as expected.

<!-- gh-comment-id:4067462165 --> @maziggy commented on GitHub (Mar 16, 2026): No, the code looks correct. Since we saw a spurious MQTT disconnect at the same time you started drying, please try again. Just checked with my H2D with HT-AMS and it works as expected.
Author
Owner

@cadtoolbox commented on GitHub (Mar 16, 2026):

2 AMS-2's and 2-HT's per nozzle on the H2D Pro if that helps.

For the HT's: If I keep the drying time at 12hrs, it turns on without issues. If I adjust the drying time to lower hours, it never turns on.

<!-- gh-comment-id:4067599512 --> @cadtoolbox commented on GitHub (Mar 16, 2026): 2 AMS-2's and 2-HT's per nozzle on the H2D Pro if that helps. For the HT's: If I keep the drying time at 12hrs, it turns on without issues. If I adjust the drying time to lower hours, it never turns on.
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

Cannot reproduce. Changed drying time from 12 to 6 hours and it started.

Can you please upload more debug logs while trying to start drying?

BTW: Just released 0.2.2 final.

<!-- gh-comment-id:4067622504 --> @maziggy commented on GitHub (Mar 16, 2026): Cannot reproduce. Changed drying time from 12 to 6 hours and it started. Can you please upload more debug logs while trying to start drying? BTW: Just released 0.2.2 final.
Author
Owner

@cadtoolbox commented on GitHub (Mar 16, 2026):

It could be just network lag. I'm at home over VPN with Bambuddy running local on my laptop for testing. Waiting on PR#693 to merge before I can update the local Bambuddy instance connected to our printers.

<!-- gh-comment-id:4067688632 --> @cadtoolbox commented on GitHub (Mar 16, 2026): It could be just network lag. I'm at home over VPN with Bambuddy running local on my laptop for testing. Waiting on PR#693 to merge before I can update the local Bambuddy instance connected to our printers.
Author
Owner

@dsmitty166 commented on GitHub (Mar 19, 2026):

I was able to turn on the HT to dry while changing temperature. @maziggy is there a way we can add support for rotating while drying as a togglable option? You can currently do this from the screen when you start on the printer.

<!-- gh-comment-id:4091328827 --> @dsmitty166 commented on GitHub (Mar 19, 2026): I was able to turn on the HT to dry while changing temperature. @maziggy is there a way we can add support for rotating while drying as a togglable option? You can currently do this from the screen when you start on the printer.
Author
Owner

@cadtoolbox commented on GitHub (Mar 19, 2026):

The HT in question had a power plug that was not inserted all the way. The software never lies. It's been working perfect.

<!-- gh-comment-id:4092462966 --> @cadtoolbox commented on GitHub (Mar 19, 2026): The HT in question had a power plug that was not inserted all the way. The software never lies. It's been working perfect.
Author
Owner

@maziggy commented on GitHub (Mar 20, 2026):

@dsmitty166 Yes, it's on my list.

<!-- gh-comment-id:4096949486 --> @maziggy commented on GitHub (Mar 20, 2026): @dsmitty166 Yes, it's on my list.
Author
Owner

@maziggy commented on GitHub (Mar 20, 2026):

Rotating while drying is avilable in branch dev and available with the next release or daily build.


If you find Bambuddy useful, please consider giving it a on GitHub — it helps others discover the project!

<!-- gh-comment-id:4097320905 --> @maziggy commented on GitHub (Mar 20, 2026): Rotating while drying is avilable in branch dev and available with the next release or daily build. ----- If you find Bambuddy useful, please consider giving it a ⭐ on [GitHub](https://github.com/maziggy/bambuddy) — it helps others discover the project!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy#180
No description provided.