MarlinFirmware / MarlinFirmware/Marlin
[FR] Temperature Stability / Max Testing
Nobody has claimed this yet.
- 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
- Send Command containing Start Temp, Max Temp (must be lower than configured max), Temperature Stepping (see below), Test Length and Cooling Target
- At test start the initial temperature would be recorded
- 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)
- The heater would then shut down and wait till the temperature reached the recorded initial temperature +/- the Cooling Target
- Step 2 would then repeat but with a target of Start Temp + Temperature Stepping
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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