Support M191 G-Code Command (Wait for Chamber Temperature)

Please add support for this G-code command: Wait for Chamber Temperature | Marlin Firmware (marlinfw.org)

Currently, users who want to automate heat soak for their Bambu Lab printers must employ multiple manual 90-second pauses/dwells in their custom machine start code. It is not an exact science or automated process, something we should be able to avoid in a $1000+ printer. So users have to resort to sloppy code like this:

;===== HEAT SOAK ====================
{if (filament_type[initial_tool]=="ASA") || (filament_type[initial_tool]=="PA-CF") }
    M190 S110 ; wait for bed temp at 110ºc
    M140 S110 ; set bed temp at 110ºc
    M106 P2 S255 ; turn ON aux fan at full speed
    M106 P3 S0 ; turn OFF chamber fan
    G4 S99 ; wait 1min30sec or 90 seconds
    G4 S99 ; wait 90 seconds
    G4 S99 ; wait 90 seconds
    G4 S99 ; wait 90 seconds
    G4 S99 ; wait 90 seconds
    G4 S99 ; wait 90 seconds    
    G4 S99 ; wait 90 seconds    
    G4 S99 ; wait 90 seconds    
    G4 S99 ; wait 90 seconds    
    G4 S99 ; wait 90 seconds    
    M106 P2 S0 ; turn OFF aux fan
{endif}

In reality, users should only have to write this if they are wanting to heat soak to a 50ºC chamber temperature.

;===== HEAT SOAK ====================
{if (filament_type[initial_tool]=="ASA") || (filament_type[initial_tool]=="PA-CF") }
    M190 S110 ; wait for bed temp at 110ºc
    M140 S110 ; set bed temp at 110ºc
    M106 P2 S255 ; turn ON aux fan at full speed
    M106 P3 S0 ; turn OFF chamber fan
    M191 R50 ; wait until chamber has reached 50ºc
    M106 P2 S0 ; turn OFF aux fan
{endif}

See how much simpler and clearer in intent the code is? By using an exact sensor-driven command, we have instantly reduced ten lines of code to just one! Furthermore, it allows for hitting an exact chamber temperature rather than “guesstimating” how long it should take. The current manual method to heat soak can end up with undesirable results if the target is not reached depending on how temperature sensitive the filament is that the user is working with.

In conclusion, please add support for the M191 command to simplify the heat soak process. Thank you!

16 Likes

Thank you @Hifihedgehog :raised_hands: :heart:

2 Likes

+1 on this needed firmware feature

2 Likes

+1 this is something we’d greatly benefit from.

1 Like

M191 is new to me

I know its a wait for chamber temp code but the X1C is my first fully enclosed printer so I’ve never used it

My question is regarding the way the chamber is passively heated rather than actively heated

The command would make sense only if there was no filament in the hot end yet and the extruder was parked at the waste chute otherwise I could see a mess of Carbon Fiber spaghetti before the print starts

Perhaps an activity heated chamber is a better solution down the road ?

Also are you able to PID tune a chamber heater ?
I only ask because PID tuning has fixed a lot of headaches for me in the past but I’m pretty sure the only USB port on these is in the back behind the cover and I have no idea if that port is in the correct position to access the board via a computer

I’m still somewhat of a novice so any legitimate replies are appreciated

Pre-print is the easiest use case to consider: Use the bed to heat the chamber to a temperature. Use this command to simply wait.

2 Likes

I understand exactly what you are saying but relying on the bed to heat the chamber above 40° will take a looooooooong time lol

There’s still so much room in the structure of the X1C that a small forced air heater with a little 4020 fan along with the heated bed would get that chamber up to temp pretty quick and could be tucked in the back panel at the bottom beside the rear z rod
Mmmmmaybe :thinking:

2 Likes

I think most of us are just trying to get to the 40s. It’s not the machine’s fault if we ask it to do something it can’t achieve :slight_smile:

I’d love to add a forced heater. After all, there’s space where folks are installing Bento Boxes in the rear right corner.

2 Likes

It certainly does, typically 15-30 minutes, but if you are printing large functional parts in ABS that you do not want to warp, ensuring a high ambient temperature is a must to prevent warpage.

3 Likes

+1 would be very useful for PAHT-CF printing in cold climates

2 Likes

Any update on this? Its really a must have when printing PA-CF, so having a better heating script is not a bad idea!

This would be awesome, I preheat the chamber whenever I print high temperature materials

+1 for this feature. Should be a simple firmware add!

1 Like

Would love to see this command added to X1C and P1S. Understandably P1S does not have a chamber temperature sensor, I’ll happily settle for M109 waiting for temp to rise to approximate the chamber temp. M109 seems to turn on the nozzle heater which totally defeats my workaround to use nozzle temp to monitor chamber temp.

1 Like

For now, would not ‘M400 S### = pause seconds’ be better to use.

Can you specify a time on M400? I didn’t think it had any parameters according to https://reprap.org/wiki/G-code#M400:_Wait_for_current_moves_to_finish

1 Like

also interested… this makes also sense for the bed leveling when you still have reach a constant temperature…

When M191 ?

It feels like this has been unavailable for an unreasonably long time in comparison to how hard it is to implement. You sell like 900 different filaments that requires a heated chamber, so can you please set up some supports for heating said chamber?

M191 appears in X1E startup g code

4 Likes

Currently testing the X1C on firmware 1.07.02.00.

Code M191 still has no effect when being used in the start g code.

1 Like