Après avoir jeté les bases cinématiques de notre structure dans le volet précédent, nous attaquons le véritable cœur opérationnel de notre Elegoo Neptune 4 Max : le système d'extrusion. Dans cet Article 7, nous isolons et documentons la gestion thermique et l'entraînement mécanique du filament via le fichier Extruders.cfg. Placé au sein de notre architecture Hardware, ce module logiciel va nous permettre de stabiliser l'alimentation en matière, de sécuriser les rampes de chauffe et de paramétrer la dynamique de rétraction.
Ce que vous allez accomplir : Nous allons regrouper la configuration de l'extrudeur, du driver TMC2209 associé, des boucles de sécurité thermiques ainsi que le capteur de fin de filament dans un script unique et propre. Vous découvrirez l'intérêt des valeurs de calibrage mécanique et des routines de secours intégrées lors des ruptures de matière.
1. Structure du fichier Hardware/Extruders.cfg
Ce fichier doit être initialisé à l'intérieur de votre répertoire de configuration Hardware (soit le chemin d'infrastructure ~/printer_data/config/Hardware/Extruders.cfg). Voici le bloc d'ingénierie d'origine, extrait, nettoyé et commenté pour garantir une production stable :
#############################################################################
#############################################################################
# ZEW-Neptune4Max V1.0 | CUSTOM INTERFACE COMPONENT
# -------------------------------------------------------------------------
# MODULE : EXTRUDER CONFIGURATION (extruder.cfg)
# FUNCTION : Hotend Thermal Control & Filament Drive System
# DESIGNED BY : Frédéric IMBERT
# VERSION : 1.0.0 (2026-05-05)
# STATUS : PRODUCTION / STABLE
#############################################################################
#############################################################################
[extruder]
step_pin: PA5 # Step signal pin
dir_pin: !PA6 # Direction signal pin (inverted)
enable_pin: !PA4 # Enable pin (inverted)
microsteps: 16 # Microstepping resolution
rotation_distance: 28.888 # Distance moved per rotation (Calibrated)
gear_ratio: 52:10 # Dual-gear reduction ratio
full_steps_per_rotation: 200 # Steps per motor revolution (1.8 deg)
nozzle_diameter: 0.400 # Installed nozzle diameter
filament_diameter: 1.750 # Standard filament diameter
min_temp: 0 # Minimum safety temperature
max_temp: 330 # Maximum operating temperature (All-metal)
heater_pin: PA7 # Heater cartridge PWM pin
sensor_type: NTC 100K MGB18-104F39050L32 # Thermistor type
sensor_pin: PA1 # Thermistor analog pin
max_power: 1 # Heater power ratio (Full)
# --- Calibration Values ---
pressure_advance: 0.02725 # Linear Advance / Pressure Advance value
pressure_advance_smooth_time: 0.02 # Smoothing time for pressure changes
# --- Extrusion Limits ---
max_extrude_cross_section: 5 # Max volume for adaptive/purge lines
instantaneous_corner_velocity: 5.0 # E-axis junction deviation limit
max_extrude_only_distance: 100 # Max distance for cold/macro extrusions
max_extrude_only_velocity: 45 # Max velocity for filament loading
max_extrude_only_accel: 2000 # Max acceleration for filament moves
step_pulse_duration: 0.000002 # Minimum stepper pulse width
# --- Driver Control (TMC2209) ---
[tmc2209 extruder]
uart_pin: PC4 # Communication pin for TMC driver
run_current: 0.8 # Motor current for the extruder
interpolate: false # Disable interpolation for better precision
# --- Heater Safety Verification ---
[verify_heater extruder]
max_error: 30 # Temperature error tolerance
check_gain_time: 10 # Rapid check interval for hotend
hysteresis: 10 # Permitted temp fluctuation
heating_gain: 2 # Minimum expected rate of rise
# --- Filament Runout Sensor ---
[filament_switch_sensor filament_sensor]
pause_on_runout: True # Automatically pause print on runout
switch_pin: PA12 # Physical sensor pin
event_delay: 3.0 # Delay before triggering (anti-noise)
pause_delay: 1.0 # Delay between pause and gcode execution
insert_gcode:
M117 Filament Inserted # UI Notification on insertion
runout_gcode:
M117 Filament Runout Detected # UI Notification on runout
# Store current temperature for safe handling during swap
SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=prev_temp VALUE={printer.extruder.target|int}
PAUSE_TUNE # Audible alert (if defined)
UNLOAD_FILAMENT # Trigger unloading macro
2. Décryptage logique des paramètres d'extrusion
La force du fichier Extruders.cfg réside dans sa triple fonction : orchestrer la mécanique fine, verrouiller la sécurité thermique globale et automatiser les actions d'urgence. Analysons l'anatomie de ces blocs clés :
Le ratio de réduction gear_ratio: 52:10 et la valeur calibrée rotation_distance: 28.888 décrivent précisément l'extrudeur Direct Drive d'origine. Désactiver l'interpolation du driver TMC2209 (interpolate: false) permet d'éviter les lissages de micropas électroniques superflus, offrant un couple franc et un contrôle micrométrique direct indispensable pour dompter le grand volume de l'imprimante.
Le bloc [verify_heater extruder] est un bouclier anti-incendie logiciel. Il surveille l'évolution de la température via la thermistance NTC 100K. Si la température s'écarte de plus de 10°C (hysteresis) de sa consigne, ou si le bloc de chauffe ne gagne pas au moins 2°C toutes les 10 secondes en phase de montée, Klipper coupe l'alimentation électrique par sécurité pour prévenir un emballement thermique (Thermal Runaway).
Automatisation du Filament Runout Sensor
Le sous-bloc [filament_switch_sensor] est asservi à la broche physique PA12. Plutôt que de simplement stopper l'impression de manière statique au milieu d'une couche en risquant de marquer la pièce par rayonnement thermique de la buse, la routine de sortie (runout_gcode) exécute une succession d'actions intelligentes :
- Le système envoie une notification visuelle claire à l'interface graphique (
M117). - Il mémorise instantanément la température cible courante de la buse (
SET_GCODE_VARIABLE) afin de maintenir l'extrudeur chaud pour la suite des opérations. - Il déclenche une alerte sonore rythmique (
PAUSE_TUNE) pour avertir l'opérateur dans l'atelier. - Il appelle de manière autonome la macro
UNLOAD_FILAMENTpour rétracter proprement le reliquat de fil hors du brise-flux thermique avant que la buse ne refroidisse.
3. Raccordement : Injection dans le Hub printer.cfg
Pour lier cette couche de contrôle mécanique et thermique à notre architecture centralisée, nous l'interconnectons au niveau de notre fichier de pilotage principal. Ouvrez votre fichier de configuration printer.cfg à la racine, et venez déclarer la liaison de votre sous-module juste en dessous de l'infrastructure du châssis :
# MODULAR CONFIGURATION (INCLUDES)
#############################################################################
[force_move]
enable_force_move: True
# --- HARDWARE ---
[include Hardware/Neptune4max.cfg] # Main printer configuration (Chassis & Signaling)
[include Hardware/Extruders.cfg] # Extruder and heater settings
#############################################################################
# BASE CONFIG (MCU & PRINTER)
#############################################################################
Rappel d'ingénierie : Veillez au strict respect de la casse et des pluriels lors de la création de votre fichier. Nommé ici Extruders.cfg, toute anomalie typographique lèvera une exception fatale au prochain redémarrage du firmware Klipper.
Notre dossier Hardware de notre charte ZEW-Neptune4Max V1.0 intègre désormais le cœur d'alimentation en matière de notre machine. Dans le prochain article, nous viendrons adjoindre le module de gestion aérodynamique et thermique globale pour finaliser la couche purement matérielle de l'imprimante. Restez connectés !