I wanted to set up my X2D for quieter overnight prints. Silent mode helps with motion noise, but it doesn’t touch the aux/chamber/print fans, and I was tired of having to remember to switch to Silent on the screen every time anyway. After digging through the gcode templates and testing, I put together a set of profile edits that does 3 things automatically:
- Puts the printer in Silent mode (50% feedrate, 50% acceleration): screen shows “Silent,” no manual switching
- Halves all auxiliary, filter, and chamber fan speeds: startup, layer changes, toolchanges, and the post-print air purge
- Corrects the displayed time estimate so it’s accurate
The part-cooling fan (P1) is handled separately via a filament profile override, since that’s slicer-controlled not gcode-controlled.
You’ll need to duplicate 2 stock profiles and make the edits below. Everything is find/replace – no need to understand the gcode.
Machine profile: “Bambu Lab X2D 0.4 nozzle”
Duplicate this profile, name it something like “Bambu Lab X2D 0.4 nozzle - Silent”, then edit 4 gcode fields.
1.a. Machine start G-code: Silent mode (4 edits)
In the “reset machine status” block, find and replace:
| Find | Replace with |
|---|---|
M220 S100 ;Reset Feedrate |
M220 S50 ;Silent mode: 50% feedrate |
M1002 set_gcode_claim_speed_level: 5 |
M1002 set_gcode_claim_speed_level: 4 |
M73.2 R1.0 ;Reset left time magnitude |
M73.2 R2.0 ;Silent mode: 2x time estimate |
Then add this new line right after the M220 S50 line:
M201.2 K0.5 ;Silent mode: 50% acceleration magnitude
M1002 set_gcode_claim_speed_level: 4 makes the printer display/engage Silent mode. Stock value 5 is Standard. Your end gcode already resets this to 0, so the next print starts clean.
1.b. Machine start G-code: fan halving (7 edits)
In the “set airduct mode” section, find and replace:
| Find | Replace with |
|---|---|
M106 P10 S255 ; turn on filter fan |
M106 P10 S127 ; turn on filter fan |
M106 P2 S255 ; turn on auxiliary fan for cooling |
M106 P2 S127 ; turn on auxiliary fan for cooling |
M106 P10 S255 ; turn on auxiliary fan for cooling |
M106 P10 S127 ; turn on auxiliary fan for cooling |
M106 P3 S127 ; turn on chamber fan for cooling |
M106 P3 S64 ; turn on chamber fan for cooling |
M106 P2 S102 ; turn on auxiliary fan |
M106 P2 S51 ; turn on auxiliary fan |
M106 P10 S102 ; turn on chamber fan |
M106 P10 S51 ; turn on chamber fan |
M142 P6 R30 S40 U0.6 V0.8 |
M142 P6 R30 S40 U0.3 V0.4 |
Leave the 2 M106 P1 S255 lines (calibration bursts) alone – those are brief and need full power for flow calibration.
2. Machine end G-code: air purification (4 edits)
You’ll need to edit the air purification section at the bottom. Find and replace:
| Find | Replace with |
|---|---|
M106 P10 S255 |
M106 P10 S127 |
M106 P3 S255 |
M106 P3 S127 |
M400 S180 (both occurrences in the purification section) |
M400 S360 |
This halves the post-print purge fan speed and doubles the duration, so you get the same total air exchange at half the noise. Trades 3 minutes of loud fan for 6 minutes of quiet fan.
3. Layer change G-code (3 find/replace, applied throughout)
| Find | Replace with |
|---|---|
255.0/100.0 |
127.0/100.0 |
U{max_additional_fan/100.0} V1.0 |
U{max_additional_fan/200.0} V0.5 |
U{max_additional_fan/100.0} V0.5 |
U{max_additional_fan/200.0} V0.25 |
4. Change filament G-code
Apply the exact same 3 find/replace operations as Layer change G-code above. The patterns are identical.
Filament profile: “Bambu PLA Basic @BBL X2D 0.4 nozzle”
Duplicate this filament profile, name it something like “Bambu PLA Basic @BBL X2D 0.4 nozzle - Silent”, then set these 3 values:
| Setting | Stock value | Silent value |
|---|---|---|
| Part cooling fan → Fan speed (max) | 100 | 50 |
| Part cooling fan → Fan speed (min) | 100 | 50 |
| Part cooling fan → Fan speed for overhangs | 100 | 50 |
This halves the part-cooling fan (P1), which the machine gcode doesn’t control. The lower fan speeds are fine here because Silent mode’s 50% feedrate means longer layer times, so each layer has more time to cool naturally.
The filament profile’s auxiliary fan settings (first_x_layer_fan_speed, additional_cooling_fan_speed) should be left at stock – those feed into the machine gcode formulas you already halved, so changing them too would double-reduce.
Notes
- Select both profiles together when printing – the machine profile handles Silent mode + aux fans, the filament profile handles the part-cooling fan.
- No need to press Silent on the printer screen – the gcode will handle it.
- Bambu Studio’s estimated print time won’t reflect the 50% slowdown (it doesn’t simulate M220 overrides), but the printer’s own displayed time will be accurate thanks to the
M73.2 R2.0correction. - The 0.2 nozzle profile inherits all its gcode from the 0.4 templates, so the same edits work there too if you want a 0.2 Silent profile.