Hello. I have 2 questions.I am trying to build a tool changer E3D style. Now it is only boards and wired components that I test before building the printer. Toolhead has an EBB 42 Canbus board and tools are wired to the main GTR and M5 board.
When I start a print with T0 and T1, T0 is the first tool that will have to work but it is not loaded on the toolhead, looks like klipper thinks that there is allready a T0 on the toolhead. Instead of loading it, it directly starts the print⊠How can I set the toolhead to confirm that there no tools on it before any print and that the toolhead will have to load T0 properly before the print ?
When T0 is loaded, I want the toolhead heater (EBB 42 Canbus} becoming the heater synchronized with T0 extruder but i get the error : Error on âSET_HEATER_TEMPERATURE HEATER=toolhead TARGET=â: unable to parse
Check my T0 macro.
Additionally you have a heater_generic, the tmc2209 extruder_stepper and heater_fan named toolhead.
This should cause the parsing error as the last toolhead named component/object is your fan.
The TMC stepper section only allows one name and not two.
Did you pass the desired temperature value to this command?
Sorry, I am new to Klipper. I am not sure to understand You. The temperature is shown in the gcode but i get the error message.
You at least miss the referenced extruder for your extruder_stepper.
Because I donât want it referenced to only one extruder. it is one extruder stepper on the toolhead that loads 9 extruders parqued that donât have steppers.
I try to build a tool changer with 9 extruders E3D style. But to spare parts, I want only one extruder stepper mounted on the toolhead that has her own Canbus board. The tools are parked, donât have extruder steppers. Only heater, heater_fan and thermistor are wired to BTT GTR-M5 Boards via pogo connectors. The idea is that the toolhead that also have pogo connectors loads the tool that is warmed by the board via pogo connectors. This avoids lots of cables between park dock and tool. When the tool is picked it can not be warmed any more from the board and thatâs why the heater of the toolhead takes control. I hope it is clear
Because you have no heater called heater_toolhead?
Your heaters are tied to your defined extruders and if I understood your concept correctly, this is also needed otherwise you will not be able to control the heating process of the individual tools.
If you need a heater that takes over at a certain point you likely will need to have complex macros that:
turn off the heater that is associated with the extruder
move and attach the pre-warmed tool to the printing head
Heater_generic heater_toolhead is defined in toolhead.cfg as mentionned above
[mcu EBBCan]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_1F0058000A50415833323720-if00
#serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
#canbus_uuid: 0e0d81e4210c
[adxl345]
cs_pin: EBBCan:PB12
spi_software_sclk_pin: EBBCan:PB10
spi_software_mosi_pin: EBBCan:PB11
spi_software_miso_pin: EBBCan:PB2
axes_map: x,y,z
[extruder_stepper extruder_toolhead]
extruder:
step_pin: EBBCan:PD0
dir_pin: !EBBCan:PD1
enable_pin: !EBBCan:PD2
microsteps: 16
rotation_distance: 33.500
#nozzle_diameter: 0.400
#filament_diameter: 1.750
[heater_generic heater_toolhead]
gcode_id:
# The id to use when reporting the temperature in the M105 command.
# This parameter must be provided.
heater_pin: EBBCan:PB13
#max_power:
sensor_type: EPCOS 100K B57560G104F
sensor_pin: EBBCan:PA3
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_extrude_temp: 40
min_temp: 0
max_temp: 250
#smooth_time:
#pwm_cycle_time:
# See the "extruder" section for the definition of the above
# parameters.
# sensor_type:MAX31865
# sensor_pin: EBBCan:PA4
# spi_bus: spi1
# rtd_nominal_r: 100
# rtd_reference_r: 430
# rtd_num_of_wires: 2
[tmc2209 extruder_stepper extruder_toolhead]
uart_pin: EBBCan:PA15
run_current: 0.650
stealthchop_threshold: 999999
[heater_fan fan_toolhead]
pin: EBBCan:PA1
heater: heater_toolhead
heater_temp: 50.0
[fan]
pin: EBBCan:PA0
I think you understand my project. I am testing with 2 tools. Here are the macros. My guess is, M109 S⊠T0 and T1 warm at start gcode. So the docks are always powering the tools. On a toolchange from T0 to T1, T0 is first unload , extruder_toolhead tool is no more synchronised to extruder and the heater_toolhead is cut off. Then T1 is loaded, activate extruder1, sync the extruder_toolhead to extruder1, heater_toolhead takes control. Now with the if statement in gcode_macro load1, I have no more error message but nothing happening, the heater_toolhead des not warm.
What do you mean exactly ? sorry i am new to klipper. Do you mean from where the temperature is defined ? I defined it in start _print macro. I tried to read your link but the level is hard for me. Does it talk about setting a variable that could be my extruder temp and use it somewhere else ?
Well, you have chosen a quite complex setup that requires a bit more understanding. And at least I will neither write these macros for you nor talk you through each detail of this complex system.
Some pointer, but the rest will be up to you to dig into it:
There are no âglobalâ variables, this means what is in your start macro stays in your start macro unless you take extra care to pass it along
A macro knows only
what is defined within the macro
passed to the macro, e.g. MY_MACRO TEMPERATURE=220
Yeah it is complex for a newbie like me. I allready read the macro tutorial and the one from voron. They helped me a lot and I tried the search printer objetcs. I will dig.
{% set EXTRUDER_TEMP = printer.extruder.temperature|int %}
SET_HEATER_TEMPERATURE HEATER=heater_toolhead TARGET={EXTRUDER_TEMP}
Last point is : When I start a print with T0 and T1, T0 is the first tool that will have to work but it is not loaded on the toolhead, klipper shows that there is allready a T0 on the toolhead. Instead of loading it, it directly starts the print⊠How can I set the toolhead to confirm that there is no tools on it ?