Our Voron 2.4 printer has 8 (each ~100x100mm) shaped heatbed sections; Arranged in a 4x2 grid, they are controlled by a 8 channel SSR. Each one is 100W AC Silicone pad heater, totaling 800W.
There are two SKR 1.3 Boards for the printer. SKR 1.3 supports these pins for thermistor analog inputs - 0.23, 0.24, 0.25, 1.30, 1.31.
The first 4 heatbeds are connected to the first SKR board (MCU Z), the next 4 heatbeds are connected to the other board (MCU XYE). Every heatbed and its thermistor is connected to the same MCU respectively. SKR 1.3 pinout
However only after building the printer did we find out that multiple heatbeds are not yet fully supported by Slicers or Klipper. For a while we have been manually enabling the heatbeds. But this was not ideal. Thanks to the flexibility of Klipper macros, it is possible to enable the required heatbeds automatically.
In the configuration, the first heatbed is defined as the default heater_bed. The rest are defined as heater_generic ( heater_bed2, heater_bed3, heater_bed4,…)
The implementation of this method is simple and straightforward. The Print Area is compared with a Heatbed Area- If the two rectangles overlap, then the corresponding heatbed section is enabled
The print area reported by the slicer is a rectangle, For some shapes this can cause a heater bed to be enabled even when there is no actual print on it. Here’s an example: In this case the heatbed 4 will be enabled since the assumed print area overlaps it.
Temperature wait commands are not yet implemented since the heatbeds reach their temperature very quickly. This can be an issue for some printers if heatbeds are slow.
PRINT_START macro:
The Heater bed command in the PRINT_START macro must be modified: HEATBED_AUTO BED_TEMP={params.BED|default(50)|float} AREA_START={params.AREA_START|default("0,0")} AREA_END={params.AREA_END|default("0,0")}
So I was inspired by this post and I am currently building this on a ratrig v-core. Any ideas on what to modify in this start print macro to incorporate this into my build. Here is the start print macro from a v-Core
#####
# START PRINT MACROS
# Call this from your slicer (custom g-code).
# Read more here: https://rat-rig.github.io/V-CoreOS/#/slicers
#####
[gcode_macro START_PRINT]
description: Start print procedure, use this in your Slicer.
gcode:
CLEAR_PAUSE
SAVE_GCODE_STATE NAME=start_print_state
# Metric values
G21
# Absolute positioning
G90
# Set extruder to absolute mode
M82
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
STOWABLE_PROBE_BEGIN_BATCH
{% endif %}
# Home if needed
MAYBE_HOME
{% if params.CHAMBER_TEMP is defined %}
_START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp}
{% endif %}
M117 Heating bed...
RESPOND MSG="Heating bed..."
# Wait for bed to heat up
M190 S{params.BED_TEMP|default(printer.heater_bed.target, true) }
# Run the customizable "AFTER_HEATING_BED" macro.
_START_PRINT_AFTER_HEATING_BED
# Run the customizable "BED_MESH" macro
_START_PRINT_BED_MESH
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
STOWABLE_PROBE_END_BATCH
{% endif %}
# Start heating extruder
M104 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) }
# Run the customizable "PARK" macro
_START_PRINT_PARK
# Wait for extruder to heat up
M117 Heating Extruder...
RESPOND MSG="Heating Extruder..."
M109 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) }
# Run the customizable "AFTER_HEATING_EXTRUDER" macro.
_START_PRINT_AFTER_HEATING_EXTRUDER
M117 Printing...
RESPOND MSG="Printing..."
RESTORE_GCODE_STATE NAME=start_print_state
# Set extrusion mode based on user configuration
{% if printer["gcode_macro RatOS"].relative_extrusion|lower == 'true' %}
M83
{% else %}
M82
{% endif %}
G92 E0
Hello, i have 4 heat beds and I used the solution described here. And it works fine.
But I’m a little bit low on the power supply.
I have two 320 W power supplies and 4 heat beds which consumes about 250W each. So my first solution ist to limit the max_power to 0.6.
Therefore, it now takes time until the bed has heated up.
But when I use only one heat bed I could increase the max_power to 1 to speed up the heating.
Is there any chance to change the max_power of a heat bed via macro?
from looking at Copoilet there is a max_power param in the set_heater_temperature macro. FYSEC might have the same issue with their 600x600 2.4. as each mat is 700W.
also, @shreeramlive where did you get an 8-channel SSR?