Auxiliary Fan Settings in OrcaSlicer: Setup Guide (M106 P2)
Wiki · Cooling & Ventilation

Auxiliary fan settings in OrcaSlicer

OrcaSlicer’s auxiliary fan is a second cooling fan controlled with M106 P2 — separate from part cooling and separate from the exhaust fan. This page covers where the setting lives, how to wire it up in Klipper, and includes a speed-to-PWM calculator below.

Command: M106 P2 S(0–255) Setting level: Printer + Material Applies to: Printers with a 2nd cooling fan

What the auxiliary fan does in OrcaSlicer

OrcaSlicer’s auxiliary fan is a second, independent cooling fan — not the main part-cooling fan and not the exhaust fan.

Some printers ship with two cooling fans instead of one: a primary part-cooling fan aimed at the nozzle, and a secondary auxiliary fan that adds extra airflow — often used for materials that benefit from more aggressive cooling, or printers with a lid/chamber that needs additional circulation. OrcaSlicer controls this second fan with its own dedicated G-code command, independent of the main cooling fan and the air filtration / exhaust fan.

Dual-fan setups are common on several machines in our list of 3D printers compatible with OrcaSlicer — a number of stock Bambu Lab and Creality models ship with a second cooling fan already wired in, which is part of what OrcaSlicer’s P2 index exists to support. See our OrcaSlicer vs Bambu Studio vs Creality Print comparison for how each slicer exposes this.

If your printer only has one cooling fan, this setting has nothing to control — enabling it without the matching hardware just adds an unused command to your G-code.

Where the auxiliary fan setting lives

Same two-level pattern as air filtration: a printer-level toggle, then a per-filament speed.

Printer Settings

Printer Settings → Basic Information → Printer Accessory

Toggle: Auxiliary part-cooling fan — depending on your OrcaSlicer version this sits under General or Advanced options.

  • Tells OrcaSlicer the printer has a second physical fan

Filament / Material Settings

Filament Settings → Cooling → Auxiliary fan speed
  • Variable: additional_cooling_fan_speed
  • Runs during printing
  • Disabled for the initial layers set by “No cooling for the first”

Turning it on, start to finish

  1. Open Printer Settings

    Select your printer profile, then go to Basic Information → Printer Accessory. New to this? Start with printer selection.

  2. Enable the auxiliary part-cooling fan

    Check the box confirming the printer has a second fan — location varies slightly by OrcaSlicer version, so check the interface guide if the menu looks different.

  3. Switch to Filament Settings → Cooling

    This is where the auxiliary fan’s actual speed gets set, per material.

  4. Set the auxiliary fan speed

    It won’t run for the number of initial layers defined by “No cooling for the first” — same rule as the main part-cooling fan.

  5. Slice and check the G-code

    Confirm M106 P2 S… shows up before trusting it on a real print.

M106 P2, explained

M106 P2 S200 // M106 = set fan speed // P2 = fan index for the auxiliary fan // S200 = speed value, 0–255 (~78%)
OrcaSlicer fan index reference
FanIndexTypical function
Part coolingP0Cools the printed part
Auxiliary fanP2Additional part/chamber airflow
Exhaust / filtrationP3Enclosure exhaust or filtration — see the air filtration guide

As with P3, the P2 index is a slicer-side label — which physical fan it drives depends on your printer’s firmware, not on OrcaSlicer. If you’re new to reading sliced output, our guide on generating G-code from STL files covers the basics of what to look for.

Fan speed % to PWM (S value) calculator

OrcaSlicer’s cooling sliders show percentages, but the G-code it emits uses a 0–255 value. Convert between the two here.

M106 P2 S204

Change either field — the other updates automatically. Use S0 to turn the fan off, S255 for full speed.

Setting it up with Klipper

Same macro approach used for the exhaust fan — define a fan for index 2, then let the M106 macro route P2 to it.

# Auxiliary fan [fan_generic fan2] pin: PA8 cycle_time: 0.01 hardware_pwm: false [gcode_macro M106] gcode: {% set fan = ‘fan’ + (params.P|int if params.P is defined else 0)|string %} {% set speed = (params.S|float / 255 if params.S is defined else 1.0) %} SET_FAN_SPEED FAN={fan} SPEED={speed}

You can also use named fans instead of the index-based fan2 convention — define [fan_generic AUX] and map P2 → AUX in the macro, the same pattern covered in the air filtration and exhaust fan guide for P3.

Only define fan2 if you actually have one. If your printer doesn’t have a physical auxiliary fan, leave this section out of your Klipper config — OrcaSlicer will simply not emit the P2 command unless the printer profile has the auxiliary fan enabled.

When to use the auxiliary fan

Do I need to enable the auxiliary fan?

Only if your printer physically has a second cooling fan wired for this purpose. Most single-fan printers don’t need it.

What’s a good use case for a second fan?

Extra cooling for filaments that need aggressive part cooling, or additional airflow on printers with a lid or partial enclosure where one fan isn’t enough.

Does it affect print quality the same way the main fan does?

It can, since more airflow changes cooling behavior — treat it as an addition to your part-cooling setup, not a separate independent variable to tune blindly.

Can I run the auxiliary fan and the exhaust fan at the same time?

Yes — P2 and P3 are independent commands and don’t interact with each other.

Auxiliary fan speed by material

The right speed depends heavily on what you’re printing — more airflow isn’t universally better.

MaterialWhat to weigh
PLATolerates aggressive cooling well — a full-speed auxiliary fan is usually safe and can help with overhangs and bridging on top of the main part-cooling fan.
PETGWants a lighter touch than PLA. See our PETG profile settings guide before pushing auxiliary fan speed too high — over-cooling PETG hurts layer adhesion.
ABS / ASAGenerally the opposite case — extra uncontrolled airflow works against the warm, stable chamber these materials need. If you’re running Overture ABS or similar, keep auxiliary fan speed low or off, and check the chamber temperature control guide for the full trade-off.
Nylon / PCSame logic as ABS/ASA — these materials are thermally sensitive, and a second fan blasting cold air can undo careful chamber heat-soaking.

Setting it up on Marlin and RepRapFirmware

Klipper isn’t the only option — Marlin and RRF handle the P2 index differently, and it’s worth knowing which applies to your printer.

Marlin

Marlin needs a second controllable fan compiled into the firmware — typically via an extra fan pin definition (commonly FAN1_PIN or a similar board-specific macro) alongside NUM_M106_FANS set to at least 2. Most stock dual-fan printers already ship with this configured; if you’ve built a custom setup, it needs to be compiled in, not just wired up.

RepRapFirmware (RRF)

RRF defines fans explicitly with M950 — for example M950 F2 C”out2″ Q500 assigns fan index 2 to a physical output pin. Once that’s in your config.g, OrcaSlicer’s M106 P2 command maps directly to it, with no macro layer required — simpler than the Klipper approach, but less flexible if you want to rename or remap fans later.

Troubleshooting

  • Fan doesn’t turn on at all

    Check the printer profile has the auxiliary fan enabled under Printer Accessory — without it, OrcaSlicer won’t emit M106 P2 regardless of the filament setting. Also confirm you’re on a current OrcaSlicer version, since older builds can expose this differently.

  • Fan seems to ignore early layers

    This is expected — it’s disabled for the number of layers set in “No cooling for the first”, same as the main part-cooling fan.

  • G-code shows M106 P2 but nothing happens

    On Klipper, check the M106 macro is actually mapping P2 to a defined fan. On Marlin/RRF, check the auxiliary fan’s physical wiring and pin assignment in firmware. If the slicer itself is behaving oddly rather than just the fan, see Orca Slicer not working or, for a crash on slicing, fixing an Access Violation error.

  • Fan speed jumps unexpectedly mid-print

    If you’re pausing to swap filament or color, the auxiliary fan speed can reset with the new filament profile’s settings — see pausing a print or changing filament for how OrcaSlicer handles settings across a pause.

Frequently asked questions

What is the auxiliary fan in OrcaSlicer?

A second cooling fan, separate from the main part-cooling fan and the exhaust/filtration fan, controlled with M106 P2.

What G-code command controls the auxiliary fan?

M106 P2 S(0-255). The S value sets speed, from 0 (off) to 255 (full speed).

Is the auxiliary fan the same as the exhaust fan?

No. The auxiliary fan (P2) is aimed at extra part/chamber airflow; the exhaust or filtration fan (P3) is aimed at enclosure ventilation — see the air filtration guide.

Do I need an auxiliary fan?

Only if your printer has a second physical fan wired for it. Enabling the setting without the hardware does nothing useful.

Can I control the auxiliary fan with Klipper?

Yes, using a custom M106 macro that maps the P2 index to a Klipper fan, the same approach used for the exhaust fan.

Why does the auxiliary fan not turn on for the first layers?

It’s disabled for the number of initial layers set in “No cooling for the first” — the same setting that governs the main part-cooling fan’s early-layer behavior.

Recent insights

Latest updates across the OrcaSlicer.pro wiki and blog.