3d printer annealing oven

I have an inexpensive countertop convection oven that I’m going to anneal UltiMaker PET CF carbon fiber composite material parts in.

I need to control the heating in stages:

Stage 1 20c duration 1hr
Stage 2 75c duration 1hr
Stage 3 80c duration 1hr
Stage 4 120c duration 2hr
Stage 5 80c duration 2hr
Stage 6 50c duration 1hr

I’m monitoring the temperature with the Inkbird IBT-2X Digital Remote Wireless BBQ Oven Smoker Thermometer and cycling the oven on and off with a SONOFF S31 Lite 15A Zigbee Smart Plug.

I initially tested my setup using the home assistant generic_thermostat, using it to turn on and off the oven for one set temperature and that worked good for initial testing but when the oven turned off the temp continued to rise well above the cut off temp. It looks like I’ll need to cycle the oven on and off in about 10 second intervals to prevent going over the target. I then need to hold that target for the duration of that heating stage before advancing to the next.

Something like the thermostat control, or humidity control would be nice, but modified to set and hold annealing temperatures and an option to cycle the heat control relay in short bursts until the oven temp is met. The graphs in the thermostat control are exactly what I need to validate that the annealing temperatures for the parts are within spec.

I was able to write a test script to go through the stages in 30 second increments (I’ll change that to hours later) and set the temperatures. Now I need to cycle the relay in 10 second increments, so it doesn’t turn on the burners solid till it hits the cut off temperature.

alias: Annealing Stage
sequence:
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 20
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 75
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 80
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 120
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 80
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.set_temperature
    target:
      entity_id: climate.annealing_oven
    data:
      temperature: 50
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: climate.turn_off
    target:
      entity_id: climate.annealing_oven
    data: {}
mode: single

You will probably experience issues with the heating of the oven itself over time, which will make the temperature drop less and rise more in each interval the longer the oven is in use.

I’ll be monitoring the annealing temperature logs and saving them for each part that is sintered as well as monitoring temperatures real-time. My intention is to manually adjust the settings over time as needed. My hope is that the automation can semi-automate a process that now requires manually adjusting the temperatures over an 8-hour period of time.