- Previous: Sections stacked vertically (20mm each, 100mm total!)
- Fixed: All sections print at Z=0.2-1.0mm (4 layers × 0.2mm)
- Much more practical for flow calibration
- Added info message showing actual print height
- CALIBRATE_PRESSURE_ADVANCE -> calls PA_TEST_PATTERN
- CALIBRATE_FLOW_RATE -> calls FLOW_TEST_CUBE
- CALIBRATE_TEMPERATURE -> calls TEMP_TOWER
- CALIBRATE_RETRACTION -> calls RETRACT_TEST_PATTERN
Previously these macros only printed instructions but didn't execute
the actual calibration prints. Now they properly delegate to the
real pattern macros in test_patterns.cfg.
- variable_cleaning_height: 0.6mm (measured Z position)
- variable_bed_corner_to_wiper_offset: -4.7mm (measured X position, corner mount outside bed area)
- User measured final wiping position: X:-4.7 Y:319.6 Z:0.6
These automated calibration suites don't work correctly because:
1. CALIBRATE_Z_OFFSET requires manual interaction (TESTZ/ACCEPT/ABORT)
- Paper test cannot be automated
- Macro continued without waiting for user input
2. CALIBRATE_PRESSURE_ADVANCE requires visual inspection
- User must examine squares and choose best PA value
- Cannot be automated
3. CALIBRATE_TEMPERATURE requires visual inspection
- User must examine tower sections for quality
- Cannot be automated
4. CALIBRATE_RETRACTION requires visual inspection
- User must examine towers for stringing
- Cannot be automated
CORRECT WORKFLOW:
Run calibration macros individually from CALIBRATION_MENU:
1. CALIBRATE_Z_OFFSET (manual, one-time)
2. CALIBRATE_INPUT_SHAPER (automatic, one-time)
3. CALIBRATE_PRESSURE_ADVANCE (per filament)
4. CALIBRATE_FLOW_RATE (per filament)
5. CALIBRATE_TEMPERATURE (per filament)
6. CALIBRATE_RETRACTION (per filament)
7. CALIBRATE_BED_MESH (periodic)
Updated CALIBRATION_MENU to show correct workflow.
All test patterns now print in the CENTER of the bed (150, 165) instead
of the front-left corner. Fixed patterns:
1. PA_TEST_PATTERN:
- Centered at X150 Y165 (bed center)
- Squares: 25mm with 10mm spacing
- 5 squares per row, auto-calculated positions
- Proper extrusion amounts
2. FLOW_TEST_CUBE:
- Centered at X150 Y165
- 20mm cube, centered coordinates
- Proper flow-multiplied extrusion
3. RETRACT_TEST_PATTERN:
- Towers centered on bed
- 10mm towers with 30mm spacing
- 4 towers per row
- Proper stringing travel moves
4. TEMP_TOWER:
- 20mm tower centered at X150 Y165
- Proper bridge moves to center
- Park at front after completion
All patterns now:
- Use BED_CENTER_X=150, BED_CENTER_Y=165 (N4 Plus center)
- Auto-calculate positions based on pattern dimensions
- Park at front of bed after completion
- Show position info in console messages
Added calibrated PA values as fallback in Klipper config:
- pressure_advance: 0.045 (PLA with Bambu Lab Hotend)
- pressure_advance_smooth_time: 0.040
This ensures good print quality even when:
- Filament profile has no PA value defined
- Using a slicer that doesn't send PA
- Manual G-code printing without PA command
Orca Slicer filament profiles take precedence when defined.
Updated pressure_advance values for all filament profiles based on
real calibration tests with Neptune 4 Plus + Bambu Lab Hotend.
Bambu Lab Hotend (23 mm³/s, steel nozzle):
- PLA: 0.045 (calibrated via PA_TEST_PATTERN)
- PETG: 0.070
- ABS: 0.060
- TPU: 0.100
- Carbon-Fiber: 0.040
Original Hotend (15 mm³/s, brass nozzle):
- PLA: 0.050 (slightly higher due to bowden-style path)
- PETG: 0.075
- ABS: 0.065
- TPU: 0.110
These values are now embedded in the Orca profiles and will be
automatically sent to Klipper at print start. Klipper config retains
fallback values.
Some Klipper versions expect this macro to be defined.
Added a simple placeholder macro to prevent:
'Option gcode in section gcode_macro SDCARD_RESET_FILE must be specified'
The optimized_user_settings.cfg was an alternative config with comments,
but it caused confusion and potential duplicate definition errors when
accidentally included alongside user_settings_clean.cfg.
Users should use:
- user_settings_clean.cfg → Copy to user_settings.cfg (active config)
- KNCM_settings.cfg → Included automatically
- calibration/*.cfg → Included automatically
ADXL345 causes 'Pin PG11 is not a valid pin name on mcu mcu' error
when Klipper runs on host ([mcu rpi]) instead of printer MCU.
Disabled ADXL345 and [resonance_tester] by default.
Users can enable ADXL later if they have:
- External ADXL345 on RPI (USB SPI)
- Cartographer ADXL (with correct V3/V4 pin)
- Klipper running on printer MCU (not host)
Input Shaper can be configured manually without ADXL.
The 'gcode_variable' section is not available in all Klipper versions.
Removed it and simplified KNCM_settings.cfg to use direct defaults.
Also reverted to 'probe:z_virtual_endstop' which is correct when
[mcu rpi] is defined in printer.cfg.
Changes:
- KNCM_settings.cfg: Removed [gcode_variable printer_settings]
- user_settings_clean.cfg: endstop_pin: probe:z_virtual_endstop
- optimized_user_settings.cfg: endstop_pin: probe:z_virtual_endstop
Updated KNCM_settings.cfg with printer_variables:
- variable_printer_bed_y_max: 330 (N4Plus)
Was: 229 (N4 - wrong!)
Added all KNCM variables for customization:
- Clean position (X, Y, Z)
- Park position (X, Y, Z)
- Purge line settings (start, end, Y, Z, amount)
Macros now use variables for consistent positioning:
- CLEAN_NOZZLE uses variable_clean_*
- SMART_PARK uses variable_park_*
- LINE_PURGE uses variable_purge_*
This ensures macros use correct bed dimensions for N4 Plus.
Created KNCM_settings.cfg with essential macros:
- CLEAN_NOZZLE: Wipe nozzle on brush/cloth
- SMART_PARK: Park nozzle at front for easy access
- LINE_PURGE: Print purge line at start
- Frame_Light_ON/OFF: Control frame LED (PD14)
- Part_Light_ON/OFF: Control part light (PD13)
Also added [output_pin] definitions for lights:
- frame_light: PD14
- part_light: PD13
This fixes: 'Unknown pin chip name rpi' error caused by
missing KNCM_settings.cfg include.
The file was previously included but didn't exist in the repo.
The Cartographer plugin registers as 'cartographer', not 'probe'.
Using 'probe:' causes: 'Unknown pin chip name probe'
Correct syntax:
endstop_pin: cartographer:z_virtual_endstop
The Neptune 4 Plus has a built-in ADXL345 accelerometer on the
mainboard. This is more reliable than the Cartographer integrated
ADXL which has version-specific pin requirements (V3: PA3, V4: PA0).
Configuration:
- cs_pin: PG11 (Neptune 4 Plus mainboard ADXL)
- spi_bus: spi2
The Cartographer ADXL config is kept as a commented alternative
for users who prefer to use it.
This fixes: 'Invalid adxl345 id (got 0 vs e5)' errors by using
the known-working mainboard accelerometer.
According to official Cartographer documentation:
- Cartographer V3: cs_pin: cartographer:PA3
- Cartographer V4: cs_pin: cartographer:PA0
Using the wrong pin causes: 'Invalid adxl345 id (got 0 vs e5)'
Added clear documentation in both user_settings_clean.cfg and
optimized_user_settings.cfg to help users select the correct pin.
Reference: https://docs.cartographer3d.com/cartographer-probe/installation-and-setup/software-configuration/klipper-setup
The 'accel_chip' option is not valid in [cartographer] section.
ADXL345 must be configured as a separate [adxl345] device that
communicates via the Cartographer MCU.
Correct configuration:
- [adxl345] with cs_pin: cartographer:PA3 and spi_bus: spi1
- [resonance_tester] with accel_chip: adxl345
- [cartographer] does NOT include accel_chip
This fixes: 'Option accel_chip is not valid in section cartographer'
CARTOGRAPHER_SCAN_CALIBRATE requires manual interaction when no
calibration exists. The macro was continuing without waiting for
user input, resulting in incorrect Z values (395mm!).
Updated macros:
- CALIBRATE_PROBE: Added detailed instructions for TESTZ/ACCEPT/ABORT
- CALIBRATE_Z_OFFSET: Added step-by-step console instructions
Users now see clear guidance:
- TESTZ Z=0.01 → Move nozzle DOWN (closer to bed)
- TESTZ Z=-0.01 → Move nozzle UP (away from bed)
- ACCEPT → Finish calibration
- ABORT → Cancel
Note: QUICK_TOUCH uses CARTOGRAPHER_TOUCH which works automatically.
The ADXL345 accelerometer is built into the Cartographer probe.
It must be configured within the [cartographer] section, not as
a separate [adxl345] device.
Changes:
- Added 'accel_chip: adxl345' to [cartographer] section
- Removed separate [adxl345] section (no longer needed)
- Changed [resonance_tester] to use 'accel_chip: cartographer'
- Added default probe_points for resonance testing
This fixes: 'Invalid adxl345 id (got 0 vs e5)' error
Reference: https://docs.cartographer3d.com/
The 'group' attribute is not supported in all Klipper versions.
This caused: 'Option group is not valid in section gcode_macro'
Macros will appear under 'Uncategorized' in Mainsail/Fluidd
until Klipper adds official support for macro grouping.
Changed from: [include calibration/*.cfg]
Changed to: [include open4neptune-new/calibration/*.cfg]
This ensures the calibration macros are loaded from the repo
(direct include) instead of a potentially outdated local copy.
Fixes issue where Klipper couldn't find the calibration macros
after users switched to direct include method.
Removed unsupported options that cause warnings:
- allow_offline_updates (not a valid option)
- update_sensors (not a valid option)
- persisted_version (not a valid option)
- needs_refresh (not a valid option)
These options are either outdated or from a different update manager
implementation. Moonraker manages version tracking internally.
- README: Add Option A (direct include) as recommended method
- README: Add Option B (copy) with warning about manual updates
- install.sh: Detect direct include vs copied files
- README: Add troubleshooting for 'Error loading template' after update
The root cause: Moonraker updates the repo, but copied files in
~/printer_data/config/calibration/ don't get updated automatically.
Solution: Use direct include [include open4neptune-new/calibration/*.cfg]
so files are always loaded from the repo.
Combined best features from printer.cfg PRINT_END and custom version:
From printer.cfg:
- END_TUNE beeper jingle
- Park position X0 Y315 (better visibility)
From custom version:
- Detailed console/LCD messages
- M84 to disable steppers
- Higher Z-park (10mm)
- Both Frame_Light and Part_Light OFF
- Filament sensors disabled
Usage: Call PRINT_END_NOCCI in slicer end gcode
- Added [include calibration/*.cfg] to optimized_user_settings.cfg
- Updated CHANGES.md with complete deployment steps
- Updated calibration/README.md with installation options
Now the calibration macros are automatically available when using
the optimized user_settings.cfg - no manual include needed!
- SET_GCODE_OFFSET Z=0 for consistent Z-Offset reset
- CG28 instead of G28 (Open4Neptune smart home)
- CARTOGRAPHER_TOUCH_HOME for precise Z0 measurement
- Tighter temperature tolerance (±2°C vs ±4-10°C)
- Full documentation in CHANGES.md