Safety Systems
The enclosure has two automatic responses that run whether or not you are watching the screen: one for smoke and gas, one for overheating. Both override whatever you have set manually.
This is not a fire suppression system and it is not a substitute for a smoke alarm. It is a sensible automatic reaction to a bad situation. Fit a proper smoke detector in the room, avoid leaving prints unattended where you can, and please don’t treat these features as permission to do so.
Smoke and gas
What triggers it
Any one of these is enough:
| Sensor | Trips when | Setting |
|---|---|---|
| MQ-2 (gas) | reading above the threshold | lpgThreshold (2000) |
| MEMS (smoke) | reading above the threshold | smokeThreshold (750) |
| Optical (optional, not supplied) | smoke detected | opticalAlarmEnable (off by default) |
The readings are raw ADC counts from 0 to 4095, not ppm. All of them are adjustable in
data.clu.
What happens
- The buzzer sounds, unless you have muted it
- The LED strip turns red, unless you have turned the alarm LED off
- Every fan stops, including the filter, cooling and extra fans
- The flap closes
Steps 3 and 4 are the ones that matter. Stopping the fans avoids feeding air to a fire and avoids pushing smoke out through the carbon filter, which does nothing useful for smoke and will ruin the filter. Closing the flap keeps the enclosure sealed.
Muting does not re-enable the fans. The mute button only silences the buzzer, and the
alarm LED toggle only turns off the red lighting. Neither of them touches the fan cutoff
or the flap, so silencing a nuisance alarm can never quietly disable the safety response
along with it. The only way to switch that off is smokeFireResponse = 0 in data.clu.
Everything returns to normal by itself once the sensors read clear.
Warm-up
For the first 10 minutes after power-on the alarm is completely suppressed. Gas sensors read wildly while their heaters come up to temperature, and without this you would get an alarm on every single power-on.
You can adjust it with smokeBeginTime, in milliseconds, up to a maximum of 15 minutes.
During those 10 minutes there is no smoke protection at all. Worth keeping in mind if you switch the enclosure on and immediately walk away.
The optical sensor is an optional extra
No optical smoke sensor is supplied with any model. The board has an input for one so you can add your own, the same type used in residential smoke detectors, but out of the box the alarm runs on the MQ-2 and MEMS sensors alone. That is the intended setup.
It is also why opticalAlarmEnable defaults to 0. The input is pulled high and reads HIGH
as “smoke”, so a board with nothing connected would alarm permanently if it were enabled.
If you do fit one, set opticalAlarmEnable = 1 and confirm it reads clear when idle before
you rely on it.
False alarms
If your printer sets it off during normal printing, don’t just turn the response off. Watch
the raw readings on the Sensors page during a normal print, then set the threshold with
clear headroom above what you actually see. Logging makes
this easy: log a full print and look at the LPG and Smoke columns.
Overheating
Above maxTemp, which is 55 °C by default:
- The flap opens to exhaust
- Every fan runs at 100%, including the extra fan regardless of its on/off switch
It stays that way until the temperature drops below maxTemp minus servoTempHyst, so
52 °C at the defaults. The hysteresis stops a reading sitting right on the threshold from
cycling the servos back and forth.
This requires the BME680. With no temperature source there is nothing to act on, so the protection simply does not run. If you have disabled the BME680 in the configuration, you have no overheat protection.
You can set maxTemp anywhere from 35 to 80 °C. Pick something above your normal printing
temperature with room to spare. A chamber that regularly reaches 45 °C should not have this
set at 45.
When both happen at once
A fire raises the temperature, so the two rules will fight. Smoke wins.
| Condition | Flap | Fans |
|---|---|---|
| Normal | as you set it | as you set them |
| Hot, no smoke | open | all 100% |
| Smoke, any temperature | closed | all off |
The ordering matters. If overheating won, a fire would open the vent and run every fan flat out, feeding it exactly the oxygen the cutoff exists to deny it.
What is protected from what
Your settings survive firmware updates. Thresholds, calibration and the filament library all live in the mainboard’s own memory, and a firmware update does not erase them.
A bad data.clu cannot disable safety. Every value is clamped to a fixed range, so you
cannot set maxTemp to 500 or drive the servos into a hard stop with a typo.
A bad firmware file cannot brick the board. The bootloader validates the whole image before it erases anything. See MainBoard Updates.
Turning things off
You can disable both responses. Setting smokeFireResponse = 0 leaves the buzzer and red
LEDs working but stops the fan cutoff and the flap closing. There is no setting to disable
the overheat response outright, so set maxTemp to 80 if you need it out of the way.
If you are turning these off to work around false alarms, fix the thresholds instead. An alarm you have disabled protects nothing.