3DCoded / 3MS

Modular Multimaterial System for Klipper 3D Printers
https://3dcoded.github.io/3MS/
GNU General Public License v3.0
19 stars 3 forks source link

ZM3E4 controller (main MCU) #4

Open kaiatkins opened 1 month ago

kaiatkins commented 1 month ago

3D Printer ZoneStar Z9V5 Pro

Controller: ZM3E4

https://github.com/ZONESTAR3D/Control-Board/tree/main/32bit/ZM3E4

Configs:

https://github.com/Z9V5PRO/Z9V5Pro-MK4-Klipper

[printer] kinematics: corexy max_velocity: 300 max_accel: 3000 max_z_velocity: 25 max_z_accel: 30 [stepper_x] step_pin: PE1 dir_pin: !PE2 enable_pin: !PE0 microsteps: 16 rotation_distance: 20 endstop_pin: !PC13 position_endstop: 0 position_max: 300 homing_speed: 50 homing_retract_dist: 10 second_homing_speed: 10.0 [stepper_y] step_pin: PE5 dir_pin: !PE4 enable_pin: !PE6 microsteps: 16 rotation_distance: 20 endstop_pin: !PE3 position_endstop: 0 position_max: 300 homing_speed: 50 homing_retract_dist: 10 second_homing_speed: 10.0 [stepper_z] step_pin: PD3 dir_pin: PD4 enable_pin: !PD2 microsteps: 16 rotation_distance: 4 position_endstop = -1.220 endstop_pin: !PD7 position_min: -20 position_max: 400 homing_retract_dist: 0 second_homing_speed: 8.0 [stepper_z1] step_pin: PC12 dir_pin: PD0 enable_pin: !PC11 endstop_pin: !PD1 microsteps: 16 rotation_distance: 4 [screws_tilt_adjust] screw1: 2, 16.5 screw1_name: front left screw screw2: 293,16.5 screw2_name: front right screw screw3: 293,286.5 screw3_name: rear right screw screw4: 2,286.5 screw4_name: rear left screw horizontal_move_z: 10 speed: 50 screw_thread: CW-M4 [extruder] step_pin: PD10 dir_pin: !PD9 # change PD9 -> !PD9 enable_pin: !PD11 microsteps: 16 rotation_distance: 7.71 gear_ratio: 50:17 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PC5 sensor_type: Generic 3950 # NTC 100K B3960 (used) sensor_pin: PC2 min_temp: 0 max_temp: 250 max_extrude_only_distance: 500 max_extrude_cross_section: 5 control = pid pid_kp = 18.853 pid_ki = 0.539 pid_kd = 164.732 [verify_heater extruder] check_gain_time:999999 [heater_fan hotend_fan] pin: PB8 max_power: 1.0 fan_speed: 1 kick_start_time: 0 heater: extruder heater_temp: 60.0 [heater_bed] heater_pin: PA2 sensor_type: EPCOS 100K B57560G104F sensor_pin: PC3 control = pid pid_kp = 74.758 pid_ki = 1.181 pid_kd = 1183.043 min_temp: 0 max_temp: 80 [fan] pin: PB1 max_power: 1.0 [extruder_stepper extruder_1] extruder: step_pin = PD13 dir_pin = !PD12 enable_pin = !PD14 microsteps: 16 rotation_distance: 7.71 gear_ratio: 50:17 [extruder_stepper extruder_2] extruder: step_pin = PC6 dir_pin = !PD15 enable_pin = !PC7 microsteps: 16 rotation_distance: 7.71 gear_ratio: 50:17 [extruder_stepper extruder_3] extruder: step_pin = PA8 dir_pin = !PC9 enable_pin = !PC10 microsteps: 16 rotation_distance: 7.71 gear_ratio: 50:17
3DCoded commented 1 month ago

I've added support for the ZM384 here. Due to some quirks with Klipper, as of now, only three extruders will work with the 3MS, and the fourth one will be used as the main extruder.

EDIT:

I have added experimental support for replacing the printer's extruder with the 3MS, allowing (in your case), for four colors.

In macros.cfg:

# Set the sync of provided TOOL to SYNC with extruder
### --- Comment if using the 3MS instead of your printer's extruder --- ###
[gcode_macro SET_TOOL_SYNC]
gcode:
  {% set tool = params.TOOL|int %}
  {% set sync = params.SYNC|int %}
  {% set motion_queue = "extruder" if sync == 1 else "" %}
  SYNC_EXTRUDER_MOTION EXTRUDER=3ms{ tool } MOTION_QUEUE={ motion_queue }
### --- Comment if using the 3MS instead of your printer's extruder --- ###
# [gcode_macro SET_TOOL_SYNC]
# gcode:
#   {% set tool = params.TOOL|int %}
#   {% set sync = params.SYNC|int %}
#   {% set ext_name = "3ms"+(tool|str) %}
#   {% if tool == 0 %}
#     {% set ext_name = "extruder" %}
#   {% endif %}
#   {% set motion_queue = "extruder" if sync == 1 else "" %}
#   SYNC_EXTRUDER_MOTION EXTRUDER={ext_name} MOTION_QUEUE={ motion_queue }
kaiatkins commented 1 month ago

Wow that was fast :) Thank you. I have ordered some parts for my machine and will be reworking it.

I plan on using the bambulabs splitter and attach to the hotend.

Screenshot 2024-08-16 at 11 51 21 PM

is the ok?

3DCoded commented 1 month ago

That splitter looks good, but you can also print this one.

3DCoded commented 3 weeks ago

The spitter I previously linked is no longer recommended for setups with more than two filament units (you would need three of those splitters). For a system like yours, this one is now recommended (you only need one of these splitters).

kaiatkins commented 3 weeks ago

The ZoneStar Z9v5 printer has 4 BMG extruders on the back and feeds either into the company's 4 in 1 out (mixing hotend) or 4 in 1 out (non- mixing hotend) but they lack in quality. So I have switched to klipper and wanted the option to change the hotend into a Bowden single E3D v6 then use like the bambulabs AMS splitter. ZONESTAR-4-Extruders-Multi-Color-FDM-3D-Printer-4-IN-1-OUT-Closed-Frame-Large-Silent maxresdefault-3

3DCoded commented 3 weeks ago

The 3MS will work fine on an E3D v6 hotend. I recommend getting the splitter as close to the hotend as possible for the speed of tool changes.

kaiatkins commented 3 weeks ago

Where would be the optimal location for the filament sensor? Currently its the red on the back of the machine before the extruder.

3DCoded commented 3 weeks ago

The optimal location for the filament sensor is between the splitter and the hotend.

kaiatkins commented 3 weeks ago

I picked up (SFS 2.0) on sale that I will use. Once everything arrives, I will start :) thank you for your quick responses, guidance and support 👍 IMG_5961

Here is what I had in mind it would be setup as

4 Color -3MS system