Article Requis (Interface) : Après avoir isolé les briques vitales du cycle de vie de nos impressions dans le fichier maître, nous abordons la couche supérieure de notre architecture modulaire. L'environnement OpenNept4une regorge de fonctionnalités natives héritées de la configuration d'origine de l'Elegoo Neptune 4 Max, mais leur dispersion nuit à la clarté du firmware. Dans cet Article 12, nous créons le fichier Helpers.cfg, un dépôt centralisé exclusivement dédié aux macros dites de confort, de signaux sonores et de contrôles de vos outils de calibration quotidienne.
1. Implantation du fichier Macros/Helpers.cfg
Pour maintenir la cohérence de notre arborescence, ce fichier doit être impérativement localisé dans votre sous-dossier dédié aux scripts, à l'emplacement exact suivant : ~/printer_data/config/Macros/Helpers.cfg.
Voici le script de production complet, récupéré et nettoyé depuis l'architecture historique d'OpenNept4une :
#############################################################################
#############################################################################
# ZEW-Neptune4Max V1.0 | CUSTOM INTERFACE COMPONENT
# -------------------------------------------------------------------------
# MODULE : UTILITY & MAINTENANCE MACROS (helpers.cfg)
# FUNCTION : Lighting, Calibration, and Service Routines
# DESIGNED BY : Frédéric IMBERT
# VERSION : 1.0.0 (2026-05-05)
# STATUS : PRODUCTION / STABLE
#############################################################################
#############################################################################
# --- Lighting Control ---
# Controls the frame-mounted LED strip for overall workspace visibility.
[gcode_macro Frame_Light_ON]
description: Turn on the overhead frame LED
gcode: SET_PIN PIN=Frame_Light VALUE=1
[gcode_macro Frame_Light_OFF]
description: Turn off the overhead frame LED
gcode: SET_PIN PIN=Frame_Light VALUE=0
# Controls the small LED on the print head to inspect the nozzle and first layer.
[gcode_macro Part_Light_ON]
description: Turn on the toolhead LED (Print light)
gcode: SET_PIN PIN=Part_Light VALUE=1
[gcode_macro Part_Light_OFF]
description: Turn off the toolhead LED (Print light)
gcode: SET_PIN PIN=Part_Light VALUE=0
# --- Beeper Control (M300) ---
# Standard M300 implementation to allow G-code controlled audible signals.
[gcode_macro M300]
description: Generic beeper macro (S=Frequency, P=Duration)
gcode:
{% set S = params.S|default(2000)|int %}
{% set P = params.P|default(100)|int %}
SET_PIN PIN=beeper VALUE=0.8 CYCLE_TIME={ 1.0/S if S > 0 else 1 }
G4 P{P}
SET_PIN PIN=beeper VALUE=0
# Melodic sequence played when a print is manually paused or filament runs out.
[gcode_macro PAUSE_TUNE]
description: Sound notification for print pause
gcode:
M300 S784 P300
M300 S587 P600
# Triumph sequence played when the print job is successfully completed.
[gcode_macro END_TUNE]
description: Sound notification for print completion
gcode:
M300 S392 P250
M300 S494 P250
M300 S587 P250
M300 S523 P300
# Simple short beep for general UI feedback or non-critical alerts.
[gcode_macro BIP_ALERTE]
description: Simple alert beep
gcode:
M300 S1000 P100
# --- Service & Calibration Routines ---
# Smart Homing: Only executes G28 if the axes are not already homed.
# Prevents unnecessary movements and saves time during macro sequences.
[gcode_macro CG28]
description: Conditional Homing (Home only if not already homed)
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
# Prepares the machine for manual bed screw adjustment using the heated bed.
[gcode_macro Bed_Level_Screws_Tune]
description: Level bed screws with heated plate (60°C)
gcode:
BED_MESH_CLEAR
SET_BED_TEMPERATURE TARGET=60
BED_TEMPERATURE_WAIT MINIMUM=58
CG28
SCREWS_TILT_CALCULATE
# Runs the specific calibration for Axis Twist Compensation.
[gcode_macro Axis_Twist_Comp_Tune]
description: Calibrate Axis Twist Compensation
gcode:
CG28
AXIS_TWIST_COMPENSATION_CALIBRATE
# Initiates the Z-Offset calibration sequence to define nozzle-to-probe distance.
[gcode_macro Calibrate_Probe_Z_Offset]
description: Start Z-Offset calibration (Probe)
gcode:
CG28
PROBE_CALIBRATE
# Performs a full automated bed mesh at operational temperature (60°C).
[gcode_macro Auto_Full_Bed_Level]
description: Complete Bed Mesh calibration at 60°C
gcode:
RESPOND PREFIX="info" MSG="Running Custom Bed Leveling Macro"
BED_MESH_CLEAR
SET_BED_TEMPERATURE TARGET=60
BED_TEMPERATURE_WAIT MINIMUM=58 MAXIMUM=65
CG28
BED_MESH_CALIBRATE
# Automates the PID tuning for the Hotend to ensure thermal stability.
[gcode_macro PID_Tune_EXTRUDER]
description: Run PID Autotune for Extruder
gcode:
{% set temperature = params.TEMPERATURE|default(210) %}
CG28
M106 S255
PID_CALIBRATE HEATER=extruder TARGET={temperature}
SAVE_CONFIG
# Automates the PID tuning for the Heated Bed.
[gcode_macro PID_Tune_BED]
description: Run PID Autotune for Heated Bed
gcode:
{% set temperature = params.TEMPERATURE|default(60) %}
CG28
M106 S255
PID_CALIBRATE HEATER=heater_bed TARGET={temperature}
SAVE_CONFIG
# Ensures the filament sensor is off at boot to prevent false triggers.
[delayed_gcode DISABLE_FILAMENT_SENSOR]
initial_duration: 1
gcode:
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
2. Anatomie des blocs de commandes
Ce fichier rassemble trois grandes familles de fonctions utilitaires indispensables au pilotage fluide et intuitif de votre machine depuis l'interface web :
Gestion de l'éclairage matériel
Les macros Frame_Light_ON / OFF et Part_Light_ON / OFF offrent un accès binaire immédiat aux lignes d'alimentation électrique des bandes LED du portique supérieur et de la tête d'impression. Pratique pour inspecter la première couche ou couper les lumières à distance.
Rétroaction sonore (Beeper)
M300: Interprète la commande G-code standard pour faire sonner le haut-parleur de la carte mère selon une fréquence (S) et une durée (P) données.PAUSE_TUNE/END_TUNE/BIP_ALERTE: Des enchaînements de notes pré-programmés servant de jalons sonores lors des changements d'états majeurs de la machine (fin de tâche, mise en attente filament).
Routines de nivellement et métrologie
CG28: Un Homing intelligent conditionnel. Les axes ne se recalent à leurs origines que si Klipper a perdu leur position géométrique, économisant du temps et de la contrainte mécanique.Bed_Level_Screws_Tune/Auto_Full_Bed_Level: Automatisation de la mise en température du plateau à $60^\circ\text{C}$ avant de lancer l'assistant de réglage des molettes physiques (Screws Tilt) ou la génération du maillage de surface.Axis_Twist_Comp_Tune/Calibrate_Probe_Z_Offset: Raccourcis directs vers les étalonnages de compensation de torsion de l'axe X et du décalage de la sonde.PID_Tune_EXTRUDER / BED: Calibrations automatiques de régulation thermique, qui forcent la sauvegarde de vos nouveaux coefficients dans le firmware via un appel systèmeSAVE_CONFIG.
Enfin, le bloc de garde DISABLE_FILAMENT_SENSOR désactive le capteur d'extrusion dès la première seconde d'initialisation de la machine pour s'affranchir de tout blocage logique parasite lors du démarrage de Klipper.
3. Raccordement de l'infrastructure logicielle
Pour que ces modules soient parfaitement interprétés, ouvrez votre fichier printer.cfg central et insérez la déclaration de votre fichier d'appoint tout en bas du bloc d'intelligence logicielle :
# 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
[include Hardware/Fans.cfg] # Cooling and enclosure fans
#[include Hardware/Adxl.cfg] # Input Shaper calibration
# --- INTELLIGENCE (Macros) ---
[include Macros/Macros.cfg] # Core system macros
[include Macros/Helpers.cfg] # General utility functions
Flexibilité d'interface : Dès l'include validé et votre firmware redémarré, ces macros deviennent disponibles dans le système. Vous pourrez alors les ajouter sous forme de boutons d'action au sein de vos panneaux personnalisés dans l'interface graphique (Mainsail / Fluidd), vous évitant ainsi d'avoir à saisir de fastidieuses lignes de commande G-code à l'avenir.
Avec cette intégration fondamentale, notre environnement de travail gagne en fluidité et en retour utilisateur grâce aux signaux sonores et lumineux maîtrisés. Votre Elegoo Neptune 4 Max dispose désormais d'un cycle de vie robuste et de commandes d'appoint parfaitement ordonnées. Dans le prochain article, nous aborderons la gestion des flux de matière qu'on va centraliser dans le fichier Filament.cfg pour optimiser nos chargements, déchargements et capteurs de fin de course. Restez connectés !