MarlinFirmware / MarlinFirmware/Marlin

[FR] Temperature Stability / Max Testing

Open
#13,675 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

T: Feature Request
Dominant language
C++
Stars
17.6k
Forks
19.7k
Avg merge
3d 5h
Merged PRs (30d)
21

Description

Description

Add a Temperature Point Stability Test feature which can help with identifying stable and safe performance of any heater but primarily Beds

Steps to Reproduce

I see this as similar to PID tuning in functional usage with a report at the end

  1. Send Command containing Start Temp, Max Temp (must be lower than configured max), Temperature Stepping (see below), Test Length and Cooling Target
  2. At test start the initial temperature would be recorded
  3. Starting at the Start Temp, the heater would heat up to the target, wait for the test length, then record A) time to reach temp, B) time to stabilize (if it did), Deviation of temperature over test length (Min, Max, Mean)
  4. The heater would then shut down and wait till the temperature reached the recorded initial temperature +/- the Cooling Target
  5. Step 2 would then repeat but with a target of Start Temp + Temperature Stepping
  6. Steps 2-5 would look until the next test would exceed the requested max temp

Safety would apply normally during this testing, with MAXTEMP/MINTEMP aborts, Thermal Runaway aborts, but with a wider hysteresis to allow testing (possibly also defined in the test call)

Additional Information

I would see the final report being similar to a levelling query, eg

Example
S = Start Temp
E = End Temp
R = Stepping
T = Test Time
L = Cooling Target
G### S50 E60 R5 T120 L5

Test #n: Target: 50, TTR: 127 seconds, TTS: 22 Seconds, Max: 52.2, Min: 49.1, Mean: 50.65
Test #n+1: Target: 55, TTR: 159 seconds, TTS: 19 Seconds, Max: 57.1, Min: 53.4, Mean: 55.25
Test #n+2: Target: 60, TTR: 289 seconds, TTS: 32 Seconds, Max: 60.3, Min: 58.1, Mean: 59.2

The goal here is to help identify the capabilities of a heater, say a Bonded PCB Aluminium bed of unknown quality, and the margins they can achieve at various temperature points. This would give not only better performance and understanding of the printer capabilities, but also help reduce issues with more temperature dependent materials, such as ABS, warping due to temperature flux on a bed etc.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing heater-control, temperature-safety, and command-parsing entry points described by the request. Define how the stepped test, cooling pauses, safety behavior, and final report fit together before implementation. Done means a complete temperature stability test can run through the requested range and produce the example-style measurements without weakening safety aborts.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.