Select the “Ender-3 Max Neo”, when setting up an Ender-3 Max Neo printer, from the Sonic Pad printer setup screen. Flash the firmware it creates for you. All you need to do now is open the “printer.cfg” file and edit the STEP and DIR pins for each motor (X, Y, Z, and E). Sway the pin names between the STEP and DIR pins for each one. For instance, for [stepper_x], change the “step_pin” from PC2 to PB9, and change the “dir_pin” from PB9 to PC2. Save and restart firmware and you should be good to go. Here’s a copy of my “printer.cfg” file if you’d just like to copy and past it…
# !Ender-3 Max Neo
# printer_size: 300x300x340
# version: 3.6
# This file contains pin mappings for the stock 2020 Creality Ender 3
# MAX. To use this config, during “make menuconfig” select the
# STM32F103 with a “28KiB bootloader” and serial (on USART1 PA10/PA9)
# communication.
# Because this printer has factory wiring, mounts, and firmware for
# a BLTouch, but does not ship with one at this time, default values
# for the sensor have been specified, but disabled, in anticipation of
# future revisions or user modification. User should take care to
# customize the offsets, particularly z-offset, for their specific unit.
# Flash this firmware by copying “out/klipper.bin” to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in “.bin” and must not match the last filename
# that was flashed.
# See docs/Config_Reference.md for a description of parameters.
###fluidd set
[include cx_printer.cfg]
[display_status]
[pause_resume]
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
# change this if you need more or less extrusion
variable_extrude: 1.0
gcode:
##### read E from pause macro #####
{% set E = printer[“gcode_macro PAUSE”].extrude|float %}
##### set park positon for x and y #####
# default is your max posion from your printer.cfg
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
PAUSE_BASE
G91
{% if printer.extruder.can_extrude|lower == ‘true’ %}
G1 E-{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if “xyz” in printer.toolhead.homed_axes %}
G1 Z{z_safe} F900
G90
G1 X{x_park} Y{y_park} F6000
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### read E from pause macro #####
{% set E = printer[“gcode_macro PAUSE”].extrude|float %}
#### get VELOCITY parameter if specified ####
{% if ‘VELOCITY’ in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == ‘true’ %}
G91
G1 E{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
TURN_OFF_HEATERS
{% if “xyz” in printer.toolhead.homed_axes %}
G91
G1 Z4.5 F300
G90
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
G28 X Y
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
G1 Y{y_park} F2000
M84
CANCEL_PRINT_BASE
[stepper_x]
step_pin: PB9 # Default: PC2
dir_pin: PC2 # Default: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: -25
position_max: 300
position_min: -25
homing_speed: 80
# [tmc2208 stepper_x]
# uart_pin: PC11
# tx_pin: PC10
# uart_address: 0 # Default: 0
# run_current: 0.580
# hold_current: 0.500
# stealthchop_threshold: 999999
[stepper_y]
step_pin: PB7 # Default: PB8
dir_pin: PB8 # Default: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 0
position_max: 300
homing_speed: 80
# [tmc2208 stepper_y]
# uart_pin: PC11
# tx_pin: PC10
#art_address: 2 # Default 2
# run_current: 0.580
# hold_current: 0.500
# stealthchop_threshold: 999999
[stepper_z]
step_pin: PB5 # Default: PB6
dir_pin: !PB6 # Default: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# position_endstop: 0.0 # disable to use BLTouch
# endstop_pin: ^PA7 # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop # enable to use BLTouch
position_min: -5 # enable to use BLTouch
position_max: 345
# [tmc2208 stepper_z]
# uart_pin: PC11
# tx_pin: PC10
# uart_address: 1 # Default: 1
# run_current: 0.580
# hold_current: 0.500
# stealthchop_threshold: 999999
[safe_z_home] # enable for BLTouch
home_xy_position: 182, 167
speed: 200
z_hop: 5
z_hop_speed: 5
[bltouch] # enable for BLTouch - fast-mode
sensor_pin: ^PB1
control_pin: PB0
x_offset: -32 # modify as needed for bltouch location
y_offset: -12 # modify as needed for bltouch location
z_offset: 0.0 # modify as needed for bltouch or run PROBE_CALIBRATE
speed: 20
pin_up_touch_mode_reports_triggered: False
[bed_mesh] # enable for BLTouch
speed: 150
mesh_min: 23, 25
mesh_max: 268, 288
algorithm: bicubic
probe_count: 5,5
horizontal_move_z: 5
[idle_timeout]
timeout: 172800
[bed_screws]
screw1:30,25
screw1_name:1
screw2:270,25
screw2_name:2
screw3:270,270
screw3_name:3
screw4:30,270
screw4_name:4
[extruder]
max_extrude_only_distance: 1000.0
step_pin: PB3 # Default: PB4
dir_pin: PB4 # Default PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 31.901
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 265
pressure_advance: 0.0
# [tmc2208 extruder]
# uart_pin: PC11
# tx_pin: PC10
# uart_address: 3 # Default: 3
# run_current: 0.655
# hold_current: 0.500
# stealthchop_threshold: 999999
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[fan_generic extruder_partfan]
pin: PC6
# [mcu rpi]
# serial: /tmp/klipper_host_mcu
# [adxl345]
# cs_pin: rpi:None
# spi_speed: 2000000
# spi_bus: spidev2.0
# [resonance_tester]
# accel_chip: adxl345
# accel_per_hz: 70
# probe_points:
# 150,150,10
[input_shaper]
shaper_type_x = ei
shaper_freq_x = 136.8
shaper_type_y = mzv
shaper_freq_y = 28.6
[filament_switch_sensor filament_sensor]
switch_pin: PA4
[mcu]
serial: /dev/serial/by-id/usb_serial_2
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 5000
max_z_velocity: 10
max_z_accel: 1000
square_corner_velocity: 5.0
[exclude_object]
[gcode_arcs]
#resolution: 1.0
[include timelapse.cfg]
[include cx_gmcro.cfg]