Skip to content
Ch 1232 / 37

Step 12.32 — Fans and lighting: Nevermore, COB strips, bay fans

Step 32 of 37 · Chapter 12 — Software: Pi OS image, Klipper/Moonraker/Mainsail, firmware, printer.cfg

Parts: none.

Do: The kit's mainboard fan/LED mapping, per the wiring guide's own table, is: PCB Fan → FAN2/PF7, LED Strip → LED-Strip/PE6, Filter Fan → FAN3/PF9. Note what LDO's config calls FAN3 and what is actually plugged into it. Edit as follows:

[fan]
##  Print Cooling Fan - FAN0 (toolhead, 5015 blower on fan adapter P4)
pin: nhk:PA15
##tachometer_pin: nhk:PD2
kick_start_time: 0.5
off_below: 0.10

[heater_fan hotend_fan]
##  Hotend Fan - FAN1 (toolhead, 4010 axial on fan adapter P2)
pin: nhk:PD0
#tachometer_pin: nhk:PD1
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0

[controller_fan controller_fan]
##  Electronics bay fans — 2x 6020 joined by the 3x2 splicer PCB. FAN2 / "PCB FAN"
pin: PF7
##tachometer_pin: PF6
kick_start_time: 0.5
heater: heater_bed

##  ---- REPLACES LDO's [heater_fan exhaust_fan] ---------------------------
##  FAN3 is labelled "FILTER FAN" in the harness and feeds the Nevermore
##  Micro V5 Duo. LDO's stock config declares it as a [heater_fan] slaved to
##  the bed at 60 C, which cannot be commanded from the slicer or a macro.
##  fan_generic lets PRINT_START run it for the materials that need filtering
##  and PRINT_END run it on for a scrub afterwards (the macros come at 12.36).
[fan_generic nevermore]                # CHANGED — was [heater_fan exhaust_fan]
pin: PF9
max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 5.0

##  ---- LDO stock, kept for reference — NOT ACTIVE -----------------------
#[heater_fan exhaust_fan]
#pin: PF9
#max_power: 1.0
#shutdown_speed: 0.0
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0

## Chamber Lighting — 2x COB strips joined by the 2x3 splitter PCB, LED-STRIP port
[output_pin caselight]
pin: PE6
pwm: true
hardware_pwm: False
value: 0.20                   # startup brightness
shutdown_value: 0
#value:1                      # CHANGED — commented out; see note below
cycle_time: 0.00025

check Check

grep -c '^\[heater_fan exhaust_fan\]' printer.cfg returns 0, grep -c '^\[fan_generic nevermore\]' printer.cfg returns 1, and [output_pin caselight] contains exactly one live value: line.

What you're looking at

Klipper has four fan section types and the difference is the point of this step: [fan] is the slicer-controlled part-cooling fan, [heater_fan] runs automatically whenever its heater is on, [controller_fan] follows the steppers and bed, and [fan_generic] is one a macro can command directly.

Why the caselight edit: LDO's stanza declares value twice — value: 0.20 and then value:1. Klipper builds its parser with RawConfigParser(strict=False), so duplicate keys are accepted silently and the last one wins: the COB strips come up at full brightness on every boot, and the 0.20 you thought you set is dead text. The same duplicate is present in LDO's Leviathan-repo configs, so it is not a transcription error in your file. src

Caution

Rev D+ / LDO: the stock exhaust-filter fan is not included in the Rev D kit, so nothing else wants FAN3. The Nevermore Micro V5 Duo is built in Ch 11 and is the only thing on that port. src

pause Good stopping point · ~15 min since the last one

probe, hotend, bed, chamber sensor, fans and lighting are all declared and the config still restarts without error. Klipper is bootable; the machine has still never moved.

Source: LDO Rev D photo S7 fans wired · leviathan-printer-rev-d-sbv2.cfg · Klipper docs § fan · LDO wiring guide § Connecting the fans and the LED strip · Video: Extras! @4:00:25