Start Gcode for multiple bed heating elements

Basic Information:

Printer Model: similar to RatRig
MCU / Printerboard: Octopus Pro
klippy.log
klippy(5).log (5.7 MB)

Describe your issue:

I have built a printer with a huge heatbed with the size of 800x800mm.
Under the heatbed are attached 4 heating elements that are heating up the heatbed.

I would like to be able to control each of the 4 heating elements separatly over the slicer Simplify3D, by passing through the temperatures over the startGcode to klipper.
In the beginning the temperatures could be saved as default with 0°C.

Has someone an idea how to write the start Gcode for this?

In my printer.cfg I have:
[heater_bed]
[heater_generic heater_bed_2]
[heater_generic heater_bed_3]
[heater_generic heater_bed_4]

The simplify3d variable names/intended gcode commands i found and they look like this:
[extruder0_temperature] - for example, M104 S[extruder0_temperature] T0;
this will take the layer 1 temperature for extruder 0
[extruder1_temperature]…

[bed0_temperature] - for example, M140 S[bed0_temperature] T0;
this will take the layer 1 temperature for bed 0
[bed1_temperature]…

You could do something like:

[gcode_macro PRINT_START]
gcode:
    ...
    {% set BED_TEMP1 = params.BED_TEMP1|default(60)|float %}
    {% set BED_TEMP2 = params.BED_TEMP2|default(0)|float %}
    {% set BED_TEMP3 = params.BED_TEMP3|default(0)|float %}
    {% set BED_TEMP4 = params.BED_TEMP4|default(0)|float %}
    {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
    ...
    SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={BED_TEMP1}
    TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={BED_TEMP1}

    {% if BED_TEMP2 > 0 %}
        SET_HEATER_TEMPERATURE HEATER=heater_bed_2 TARGET={BED_TEMP2}
        TEMPERATURE_WAIT SENSOR="heater_generic heater_bed_2" MINIMUM={BED_TEMP2}
    {% endif %}

    {% if ...

Then from your slicer, you would call the macro from the starting gcode like:

PRINT_START BED_TEMP1=[some variable] BED_TEMP2=[some variable] EXTRUDER_TEMP=[some other variable]

How to handle this in S3D, I don’t know, since I do not use it.

You might want to override the M140 and M190 commands so that they do this, in case you ever need to change the bed temp during a print.

Thanks for your the help.